0

キーワードのパターンに一致する正規表現を作成しようとすると、見つかったパターンは次のようになります

  • :スペースが発生するまでの前のすべての単語と、発生するまでの後の:すべての単語を削除し)ます。

この jsfiddleで用語を見つけてください。

var newInput="keyword2:(content2) app keyword1:(content1) sos keyword:(content) das sad";

次のような出力を探しています

app,sos,das,sad 
4

2 に答える 2

2
newInput.replace(/[^:\s]+:\([^)]*\)\s*/g, '');  // "app sos das sad"

説明

[^:\s]+: # ':' の前の任意の文字 (' ' と ':' を除く) "keyword1:'"
\([^)]*\) # '(' ')' で囲まれた任意の文字 "(content2)"
\s* # 末尾のスペース " "

これは、スペースで区切られた文字列を返します。あなたはそれをトリミングしてスペースで分割する(またはそれらを置き換える)必要があります。

于 2012-09-07T05:51:05.427 に答える
1

あなたが試すことができます:

var words = newInput.replace(/[^\s]+:\([^\)]+\)\s+/g, "").split(/\s+/);

次のような単語の配列が生成されます。

["app", "sos", "das", "sad"]

質問に示されているようにカンマ区切りの文字列が必要な場合は、次のようにします。

var words = newInput.replace(/[^\s]+:\([^\)]+\)\s+/g, "").split(/\s+/).join(", ")
于 2012-09-07T05:54:49.697 に答える