【发布时间】:2014-05-24 11:37:32
【问题描述】:
我正在尝试使用 Regex 模式(在 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 人员。
【问题讨论】:
-
有关更多信息,请查看
\b:word boundaries(在“锚点”下列出)和Stack Overflow Regular Expressions FAQ 中有关“环视”的整个部分。
标签: regex word-boundary word-boundaries