现在我正在学习 Java 上的正则表达式,我有一个关于单词边界的问题。因此,当我在 Java 正则表达式上寻找单词边界时,我得到了这个\b ,它接受由非单词字符边框的单词,所以这个正则表达式
\b123\b
将接受此字符串 123 456
但会拒绝 456123456
。现在我发现像 !$@#@%123^^%$#
或 "123"
这样的词仍然被上面的正则表达式接受。是否有任何单词边界/模式拒绝像上面的示例一样以非字母数字(空格除外)为边界的单词?
最佳答案
您想使用\s
而不是\b
。这将查找空白字符而不是单词边界。
但是,如果您希望 123 456
的第一个示例能够匹配,那么您还需要使用 anchor 在立即开始或结束时接受 123
字符串的。这可以通过(\s|^)123(\s|$)
来完成。克拉 ^
匹配字符串的开头,$
匹配字符串的结尾。
关于java - 拒绝前导/结尾非字母数字字符的字边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15320104/