regex - 正则表达式中的单词边界是什么?

标签 regex word-boundary

我正在尝试使用正则表达式来匹配空格分隔的数字。 我找不到 \b (“单词边界”)的精确定义。 我曾假设 -12 是一个“整数单词”(与 \b\-?\d+\b 匹配),但看来这不起作用。我很高兴知道 的方法。

[我在 Java 1.6 中使用 Java 正则表达式]

示例:

Pattern pattern = Pattern.compile("\\s*\\b\\-?\\d+\\s*");
String plus = " 12 ";
System.out.println(""+pattern.matcher(plus).matches());

String minus = " -12 ";
System.out.println(""+pattern.matcher(minus).matches());

pattern = Pattern.compile("\\s*\\-?\\d+\\s*");
System.out.println(""+pattern.matcher(minus).matches());

这将返回:

true
false
true

最佳答案

在大多数正则表达式方言中,单词边界是 \w\W (非单词字符)之间的位置,或者位于一个字符的开头或结尾。字符串(分别)以单词字符 ([0-9A-Za-z_]) 开头或结尾。

因此,在字符串 "-12" 中,它将匹配 1 之前或 2 之后。破折号不是单词字符。

关于regex - 正则表达式中的单词边界是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1324676/

相关文章:

regex - 如果正则表达式和字符串都是变量,如何在 perl 中使用正则表达式

java - 使用java正则表达式查找没有宽度或高度属性的img标签

python - 如何从正则表达式匹配中获取索引?

mysql: instr 指定字边界

javascript - 单词边界对符号字符有效吗?

用于匹配 anchor 否定和字符串的正则表达式

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

javascript - 如何在 RegExp 对象中使用单词边界

javascript - 检查文本框是否包含无效字符

javascript - 如何在 Jquery 中搜索数组,如 SQL LIKE value% 语句