首先,我想提到的是,虽然我远非正则表达式大师,但我并不完全陌生。通常建立一个用于在特定字符串中搜索模式的正则表达式对我来说并不是问题,但我有一个(也许?)独特的情况。
我有一组值,例如:
028938
DEF567987
390987.456
GHI345928.039
我想匹配某些字符串,例如:
- 由恰好6个数字组成的字符串
- 由恰好6个数字、一个小数点和恰好3个数字组成的字符串
在上面的例子中,第一个和第三个值应该匹配。
我使用以下正则表达式:
[0-9]{6}
[0-9]{6}.[0-9]{3}
很不幸,由于上述所有示例包含指定的模式,因此所有值都被匹配。这并不是我的意图。
所以我的问题简而言之就是如何编写一个正则表达式,精确完整地匹配一个字符串,没有额外的字符在匹配模式的左右?是否有术语来表示这种类型的匹配?(谷歌没什么帮助)TIA
Matcher.matches()
或String.matches()
,就不需要开始或结束锚点,但如果你使用Matcher.find()
,则需要。此外,你需要转义句点("[0-9]{6}\\.[0-9]{3}"
)。 - Mark Peters^
和$
这两个符号。 - msw