gpt4 book ai didi

java - 正则表达式精确匹配字符串?

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:12 25 4
gpt4 key购买 nike

在这个问题的开头,我会提到虽然我远不是正则表达式大师,但它们对我来说并不完全陌生。构建正则表达式来搜索特定字符串内的模式对我来说通常不是问题,但我有一个(也许?)独特的情况。

我有一组值,比如说:

028938
DEF567987
390987.456
GHI345928.039

我想匹配某组字符串,比如:

  • 正好由 6 位数字组成的字符串
  • 由恰好 6 位数字组成的字符串,一个小数点,后跟恰好 3 位数字

在上面的例子中,第一个和第三个值应该匹配。

我正在使用正则表达式:

[0-9]{6}
[0-9]{6}.[0-9]{3}

不幸的是,由于上述所有示例都包含指定的模式,因此所有值都匹配。这不是我的本意。

因此,简而言之,我的问题是如何编写一个正则表达式来准确、完整地匹配一个字符串,并且在匹配模式的右侧或左侧没有额外的字符?这种匹配有专门的术语吗? (谷歌没有帮助。)TIA

最佳答案

使用 ^$ 来匹配字符串的开头和结尾

^[0-9]{6}$
^[0-9]{6}\.[0-9]{3}$

引用:http://www.regular-expressions.info/anchors.html

此外,正如 Mikael Svenson 所指出的,如果您要在较大的文本 block 中搜索此模式,则可以使用词边界 \b

引用:http://www.regular-expressions.info/wordboundaries.html

你也可以一次写完这两个正则表达式

^\d{6}(\.\d{3})?$

关于java - 正则表达式精确匹配字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3479324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com