在这个问题的前言中,我要提到,虽然我远非正则表达式专家,但它们对我来说并不完全陌生。构建正则表达式来搜索特定字符串内的模式通常对我来说不是问题,但我有一个(也许?)独特的情况。
我有一组价值观,比如:
028938
DEF567987
390987.456
GHI345928.039
我想匹配一组特定的字符串,例如:
- 恰好由 6 位数字组成的字符串
- 由 6 位数字、一个小数点和后跟 3 位数字组成的字符串
在上面的示例中,第一个和第三个值应该匹配。
我正在使用正则表达式:
[0-9]{6}
[0-9]{6}.[0-9]{3}
不幸的是,由于上述所有例子contain指定的模式,所有值都匹配。这不是我的本意。
所以我的问题,简而言之,是如何编写一个正则表达式来完全匹配一个字符串,并且在匹配模式的右侧或左侧没有附加字符?这种类型的匹配有术语吗? (谷歌没有帮助。)TIA
use ^
and $
匹配字符串的开头和结尾
^[0-9]{6}$
^[0-9]{6}\.[0-9]{3}$
参考:http://www.regular-expressions.info/anchors.html http://www.regular-expressions.info/anchors.html
另外,正如 Mikael Svenson 所指出的,您可以使用“边界”一词\b
如果您正在较大的文本块中搜索此模式。
参考:http://www.regular-expressions.info/wordboundaries.html http://www.regular-expressions.info/wordboundaries.html
您也可以一次性编写这两个正则表达式
^\d{6}(\.\d{3})?$
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)