我有以下文字=“superilustrado e de capa dura?”,我想在文本中找到单词之间的所有空格。我使用以下表达式= [\\p{L}[:punct:]][[:space:]][\\p{L}[:punct:]]
。表达式工作正常,但它可以找到“e de”之间的空格。有人知道我的正则表达式有什么问题吗?
答案 0 :(得分:16)
只需在正则表达式中添加空格字符即可找到空格。
可以在\s
找到空格。
如果要查找单词之间的空格,请使用\b
单词边界标记。
这将匹配两个单词之间的单个空格:
"\b \b"
(你的匹配失败的原因是\\p{L}
包含匹配中的字符。因为e
只有一个字符,它会被前一个匹配吃掉而无法匹配e
之后的空格。\b
可以避免此问题,因为它是零宽度匹配。)
答案 1 :(得分:4)
也许我没有跟踪,但为什么不使用[]?
答案 2 :(得分:0)
// 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;