1

文字列内の次の構文を検出するレジストリ式を作成しようとしています:

OPEN-BRACKET > ANYTHING > PLUS-OR-MINUS > CLOSE-BRACKET
  • 文字列の例: NB###-#####-#####-### [#+]

式は文字列のどこにでもあり、複数回出現する可能性があることに注意してください。

私はPHP[(.+)(\+|-)]で行うと想像していたように動作しないように見えますが、rubular.comで動作します

文字列**を返す式は、それがプラスマイナスかを問わず、どのような式になるでしょうか?

4

3 に答える 3

1

たぶん.+、デフォルトの貪欲さのためにすべてを消費しますか?を使用して文字列を固定するとどうなりますか^\[(.+)(\+|-)\]$

重複して文字列を固定できない場合は、先読み機能を使用してみてください。また、「ANYTHING」が実際に何でもあり得る場合、ANYTHING+] と PLUS-OR-MINUS > CLOSE-BRACKET をどのように区別しますか?

プラスもマイナスも使用できない場合は、 を選択して\[([^+-]+)(\+|-)\]ください。

于 2012-08-11T15:50:55.087 に答える
1

私はパターンを提案します:

"(\[(.+)(\+|-)\])"

括弧はグループ全体をキャプチャし、\エスケープ文字[]文字、および+それ以外の場合 (エスケープされていない場合) 正規表現で特別な意味を持つ文字もキャプチャします。

于 2012-08-11T15:51:26.117 に答える
0

助けてくれてありがとう。/\[([\$|a-zA-Z]+)(\+|-)\]/意図したとおりの作品を見つけることができました。

于 2012-08-12T00:22:30.640 に答える