java - 拒绝前导/结尾非字母数字字符的字边界

标签 java regex alphanumeric word-boundary

现在我正在学习 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/

相关文章:

java - Spring 安全: How to persist each anonymous user?

java - 确定表达式的结果类

java - 正则表达式将字符串拆分为句子

sql - SQL中的正则表达式?

c# - 使用 C# 从字母数字字符串中拆分数字部分

javascript - 验证用户输入

java - Math.random() 解释

java - 来自 Java SE 的 JMS 连接

java - 如何获取连字符第一次出现和最后一次出现之间的字符串

python - 在python中将字母数字字符串转换为数字字符串