次のテキスト= "superilustrado e de capa dura?"があり、テキスト内の単語間のすべてのスペースを検索したい。次の式を使用しています= [\\p{L}[:punct:]][[:space:]][\\p{L}[:punct:]]
。式は正常に機能しますが、「e de」の間のスペースを見つけることができます。誰かが私の正規表現の問題を知っていますか?
スペースは、正規表現にスペース文字を置くだけで見つけることができます。
空白は\s
で見つけることができます。
単語間の空白を検索する場合は、\b
単語境界マーカーを使用します。
これは、2つの単語間の単一のスペースに一致します。
"\b \b"
(一致が失敗した理由は、\\p{L}
が一致に文字を含んでいるためです。e
は1文字のみであるため、前の一致によって食い尽くされ、その後のスペースで一致することはできませんe
。\b
は、幅がゼロであるため、この問題を回避します。)
追跡していないのかもしれませんが、[]だけを使用しないのはなぜですか?
// 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;