2

C# の正規表現に関するアドバイスが必要です。私が一致させようとしているのは、2 つの文字 (角括弧) の間のすべてですが、一部の文字 (,;) が角括弧の間にない場合にのみ、それらの文字を除外したいと考えています。

つまり、1 つの正規表現で 2 つの式を組み合わせる必要があります。私はこれを持っています: [(.*?)] そして、この他の: [^,;]

2 つの式は分離するとうまく機能しますが、両方を組み合わせて 1 つの式にまとめることができませんでした。 [(.*?)] & [^, ;]しかし、それは機能しません。

ここに私が必要とするものについてのいくつかの現実的な例があります:

  • ...[テキスト 1]...:一致: [テキスト 1]

  • ...[テキスト text2]...:一致: [テキスト text2]

  • ...[text,text2]...:一致しません!

  • ...[テキスト;テキスト 2]...:一致しません!

どうぞ、あなたが与えることができるアドバイスは非常に役に立ちます。

どうもありがとう

4

3 に答える 3

1

試しました@"\[([^,;]+?)\]"か?

regexpal.comで確認してください。

于 2013-09-20T21:37:00.627 に答える
0

代替を使用する: これは例です

    $test = preg_replace('/\[.*?\]|[\[\]=]/', '', $test);

ここでは順序が重要であるため、最初に一致する括弧とその内容が削除されます。ネストされたブラケットがない限り、これは正常に機能するはずです。

于 2013-09-20T21:51:30.960 に答える