我对正则表达式很陌生,遇到了一个我无法解决的问题。
我试图在正则表达式中排除特定长度的字符串。
内容如下:
26.6921320 01.2023
我想排除“6921320” -> 它是一个可变字符串,但长度始终为 7 个字符。
我试着这样做:
(?:..(?!(\d.))[.\d])
输出将是:
Match 1: 26.
Match 2: 01.
Match 3: 023
没有按预期工作,因为我只是在有限的知识下碰运气。
感谢任何解释方面的帮助。
您可以尝试如下:
^([\d]{2})\.[\d]+\s([\d]{2})\.([\d]+)$
.
([\d]{2})
将匹配第一个数字。 ^\.[\d]+\s
将匹配点和 sspace 之前的其余数字。 ([\d]{2})
将匹配第二个点之后的下两个数字,([\d]+)
将匹配所有最后的数字。 ()
包含的模式将是您首选编程语言中指定为“匹配项”的模式。
Edit:阅读编辑后的问题(在匹配中添加点)正则表达式应如下所示:
^([\d]{2}\.)[\d]+\s([\d]{2}\.)([\d]+)$
.
希望有帮助。
要仅匹配给定的示例,您可以使用带有单词边界的交替。
由于交替,模式匹配不同的部分,因为您不能仅在单个匹配中跳过匹配。
\b(?:\d\d\.|\d{4})\b
说明
\b
防止部分单词匹配的单词边界(?:
备选方案的非捕获组
\d\d\.
匹配2个数字和.
|
或\d{4}
匹配4位数字)
关闭非捕获组\b
单词边界查看正则表达式演示。