1

私は正規表現を初めて使用します。これを解決するのを手伝ってもらえますか?

交換したい

一部のテキストと XXblaaaaa# とテキスト XXbl!abla# または XXblalala# または XXbabla#

一部のテキストと OOTEXT** と再びテキスト OOTEXT** または OOTEXT**

t をテストするために jsfiddle を作成しました。

テスト用の私の正規表現は次 /((XX).+?(?=(#)))/g;のとおりです。つまり、 find XXuntill#です。

しかし、次の条件を設定するにはどうすればよいですか?と#の間の文字列にが含まれていない場合までXX#!

4

3 に答える 3

0

あなたが望むのは次のようなものだと思います:

result = input.replace(/XX[^!#]*(?:![^#]*#[^!#]*)*#/g, "OOTEXT**");

それはどのように機能しますか?をマッチさせてから、できるだけ多くの非文字、非文字XXを消費します。次のグループは a に一致し、次まですべてを消費し、前と同じように non- 、 non-で続行します。この部分は、 が前に付いていないa が見つかるまで、必要な回数だけ繰り返されます。!#(?:![^#]#[^!#]*)!##!#!

于 2013-08-22T13:01:34.550 に答える