我会在提到这个问题前提到,虽然我离正则表达大师很远,但对我来说并不是完全陌生的.构建一个正则表达式来搜索特定字符串中的模式通常对我来说不是问题,但我有一个(可能是?)独特的情况.
我有一组价值观,比如说:
028938
DEF567987
390987.456
GHI345928.039
我想匹配一组特定的字符串,例如:
在上面的例子中,第一个和第三个值应该匹配.
我正在使用正则表达式:
[0-9]{6}
[0-9]{6}.[0-9]{3}
不幸的是,由于以上所有示例都包含指定的模式,因此所有值都匹配.这不是我的意图.
所以我的问题,简而言之,就是如何编写一个完全匹配字符串的正则表达式,匹配模式的右侧或左侧没有其他字符?这种匹配是否有术语?(谷歌没有帮助.)TIA
Caf*_*eek 44
使用^和$匹配字符串的开头和结尾
^[0-9]{6}$
^[0-9]{6}\.[0-9]{3}$
参考:http://www.regular-expressions.info/anchors.html
此外,正如Mikael Svenson所指出的,\b如果您在更大的文本块中搜索此模式,则可以使用单词边界.
参考:http://www.regular-expressions.info/wordboundaries.html
你也可以一次写下这两个正则表达式
^\d{6}(\.\d{3})?$
您可以使用^要求在行首匹配并$要求在行尾匹配
^[0-9]{6}\.[0-9]{3}$
[0-9] 也可以写成 \d
^\d{6}\.\d{3}$
\b如果您想在一行中匹配您的模式,您也可以用于单词边界,例如。其中的空间
\btest\b
将匹配test此行中的单词
this is a test for matching