小编典典

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

all

我正在尝试使用正则表达式来匹配以空格分隔的数字。我找不到\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

阅读 97

收藏
2022-07-16

共1个答案

小编典典

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

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

2022-07-16