1

HTML要素のクラス名から取得されたこのサンプルテキストがあります:

rich-message err-test1 erroractive
rich-message err-test2 erroractive
rich-message erroractive err-test1
err-test2 rich-message erroractive

これらの各例の「test1」/「test2」データを一致させようとしています。現在、「err-test1」タイプの単語に一致する次の正規表現を使用しています。ハイフン(-)の後のデータだけに制限する方法がわかりません。

/err-(\S*)/ig

この壁にぶつかって頭が痛い。

4

3 に答える 3

3

私が読んでいるものから、あなたのコードはすでに機能しています。

Regex.exec()成功すると結果の配列を返します。

配列の最初の要素 (インデックス 0) は文字列全体を返し、その後、()囲まれたすべての要素がこの配列にプッシュされます。

var string = 'rich-message err-test1 erroractive';
var regex = new RegExp('err-(\S*)', 'ig');
var result = regex.exec(string);

alert(result[0]) --> returns err-test1
alert(result[1]) --> returns test1
于 2009-01-07T19:14:37.957 に答える
0

- の後のものは結果配列にあるはずです。最初の項目は一致するすべてのテキスト (例: "err-test1") で、次の項目はキャプチャ括弧 (例: "test1") からの一致です。

myregex = /err-(\S*)/ig;
mymatch = myregex.exec("data with matches in it");
testnum = mymatch[1];

参考サイトはこちら。

于 2009-01-07T19:15:19.903 に答える
0

「err-([^ \n\r]*)」を試すことができますが、問題は正規表現であると確信していますか? 最初のキャプチャだけでなく、結果全体を使用していますか?

于 2009-01-07T19:12:21.907 に答える