我有以下文本=“superilustrado e de capa dura?”,我想找到文本中单词之间的所有空格。我正在使用以下表达式 = [\\p{L}[:punct:]][[:space:]][\\p{L}[:punct:]]
。该表达式工作正常,但它可以找到“e de”之间的空间。有人知道我的正则表达式有什么问题吗?
问问题
97441 次
3 回答
26
只需在正则表达式中添加空格字符即可找到空格。
空格可以用\s
.
如果要查找单词之间的空格,请使用\b
单词边界标记。
这将匹配两个单词之间的单个空格:
"\b \b"
(您的匹配失败的原因是在匹配中\\p{L}
包含该字符。因为e
只有一个字符,它会被前一个匹配吃掉,并且无法匹配 . 之后的空格e
。 \b
避免了这个问题,因为它是零宽度匹配。)
于 2013-06-06T14:54:44.650 回答
5
也许我没有跟踪,但为什么不直接使用 [ ]?
于 2013-06-06T14:54:26.420 回答
4
// Setup
var testString = "How many spaces are there in this sentence?";
// Only change code below this line.
var expression = /\s+/g; // Change this line
// Only change code above this line
// This code counts the matches of expression in testString
var spaceCount = testString.match(expression).length;
于 2017-07-26T15:57:55.543 回答