web-dev-qa-db-ja.com

スペースを見つけるための正規表現

次のテキスト= "superilustrado e de capa dura?"があり、テキスト内の単語間のすべてのスペースを検索したい。次の式を使用しています= [\\p{L}[:punct:]][[:space:]][\\p{L}[:punct:]]。式は正常に機能しますが、「e de」の間のスペースを見つけることができます。誰かが私の正規表現の問題を知っていますか?

9
Aldo

スペースは、正規表現にスペース文字を置くだけで見つけることができます。

空白は\sで見つけることができます。

単語間の空白を検索する場合は、\b単語境界マーカーを使用します。

これは、2つの単語間の単一のスペースに一致します。

"\b \b"

(一致が失敗した理由は、\\p{L}が一致に文字を含んでいるためです。eは1文字のみであるため、前の一致によって食い尽くされ、その後のスペースで一致することはできませんe\bは、幅がゼロであるため、この問題を回避します。)

16
user1919238

追跡していないのかもしれませんが、[]だけを使用しないのはなぜですか?

4
Captain Skyhawk
// 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;
1
ziaullahzia