gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 04:43:55 25 4
gpt4 key购买 nike

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com