0

これは興味深いものです。文字列からさまざまな部分を抽出するための JavaScript 正規表現ソリューションを探しています。どんな入力でも大歓迎です。

例 -

";1XYZ123_UK;1;2.3;evt14=0.0|evt87=0.0,;1XYZ456_UK;4;5.6;evt14=0.0;フライ;0;0;;;"

残りを無視して、文字列からこれらのビットだけを抽出しようとしています-

「1XYZ123_UK;2;3;1XYZ456_UK;4;5.6;」</pre>

基本的には、1XYZ から 'evt' に到達するまですべてを抽出します。

4

3 に答える 3

1
var s= ";1XYZ123_UK;1;2.3;evt14=0.0|evt87=0.0,;1XYZ456_UK;4;5.6;evt14=0.0"

s = s.replace(/(evt.+?(?:\||;|$))/g, "");

console.log(s) // ";1XYZ123_UK;1;2.3;1XYZ456_UK;4;5.6;"
于 2013-02-25T11:30:12.603 に答える
1
var s = ';1XYZ123_UK;1;2e.3;evt14=0.0|evt87=0.0,;1XYZ456_UK;4;5.6;evt14=0.0';
var r = s.match(/1XYZ((?!evt).)*/g);

希望の文字列を提供します:

["1XYZ123_UK;1;2e.3;", "1XYZ456_UK;4;5.6;"]
于 2013-02-25T11:35:19.723 に答える
0

グループ ( (...)) を使用して、一致した文字列の一部をキャプチャします。String.match一致が成功した後、キャプチャされた部分文字列は、またはから返された配列を介してアクセスできますRegex.exec

配列の最初の要素 (インデックス 0) は一致全体であり、次の要素 (インデックス 1) は最初のキャプチャです。

例えば。

var re = /1XY(.*)evt/
var result = theString.match(re)

次に、一致する場合 ( resultnull ではない)

result[0]

試合全体(開始1XYと終了evt)になりますが、

result[1]

これらの文字列の間のテキストになります。

于 2013-02-25T11:29:59.170 に答える