gpt4 book ai didi

c# - 正则表达式捕获句子中的确切单词

转载 作者:行者123 更新时间:2023-11-30 12:23:41 25 4
gpt4 key购买 nike

我在捕获句子中的特定字符串时遇到了一些问题。

我使用的正则表达式是 \b[0-9]{9,12}\b 来捕获 9 到 12 位数字之间的数字。边界我用它来指定确切的数字,但问题是,当我有一个数字与这个正则表达式匹配后跟一个点时,例如,正则表达式仍然匹配并给我带来很多麻烦。

当我搜索时,问题是 \b 也使用一些特殊字符作为分隔符,对吗?那么有没有办法考虑,例如123456789.整个字符串和正则表达式将不匹配该示例?

谢谢!

最佳答案

单词边界 \b 需要在数字前后有一个非单词字符(因为数字是一个单词字符)。由于点和逗号是非单词字符,因此它们是允许的。为确保点之间的数字序列不匹配,您需要使用lookarounds

你可以使用

\b(?<!\.)[0-9]{9,12}(?!\.)\b

查看 regex demo

额外的子模式是 lookbehind (?<!\.) 和 lookahead (?!\.) 确保数字序列前后没有 .

如果您将 ., 作为小数点分隔符,您可能需要将模式调整为

\b(?<![.,])[0-9]{9,12}(?![.,])\b

关于c# - 正则表达式捕获句子中的确切单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987030/

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