gpt4 book ai didi

正则表达式匹配单词边界或非数字

转载 作者:行者123 更新时间:2023-12-04 22:12:34 26 4
gpt4 key购买 nike

我正在尝试使用正则表达式模式(在 Java 中)来查找 3 位数字的序列,并且在一行中只有 3 位数字。 4 位不匹配,2 位不匹配。

对我来说明显的模式是:

"\b(\d{3})\b"

这与许多源字符串情况相匹配,例如:
">123<"
" 123-"
"123"

但它不会与“abc123def”的源字符串匹配,因为 c/1 边界和 3/d 边界不算作\b 类所期望的“单词边界”匹配。

我本来希望解决方案是添加一个字符类,其中包括非数字 (\D) 和单词边界 (\b)。但这似乎是非法语法。
"[\b\D](\d{3})[\b\D]"

有谁知道我可以使用什么作为表达式来为源字符串情况提取“123”,例如:
"abc123def"

我很感激任何帮助。是的,我意识到在 Java 中必须双重转义\b 到\b 之类的代码,但这不是我的问题,我不想将其限制为 Java 人员。

最佳答案

对于这些情况,您应该使用环视:

(?<!\d)(\d{3})(?!\d)
这意味着匹配后面没有数字的 3 位数字。
Working Demo

关于正则表达式匹配单词边界或非数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22993538/

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