14

我有以下文本=“superilustrado e de capa dura?”,我想找到文本中单词之间的所有空格。我正在使用以下表达式 = [\\p{L}[:punct:]][[:space:]][\\p{L}[:punct:]]。该表达式工作正常,但它可以找到“e de”之间的空间。有人知道我的正则表达式有什么问题吗?

4

3 回答 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 回答