自習中にいくつかの講義ノートで見つけた問題の正規表現を書く必要があります。この正規表現は、abxba形式の文字列に一致します。ここで、xは、部分文字列としてbaを含まないa、b、およびcの文字列です。私がこれまでに持っているのはです^ab(a+c+b+|a+b+c+|b+c+a+|c+a+b+)ba$
が、それは明らかに不完全です。誰か助けてもらえますか?
3 に答える
2
これを試すことができます
^ab(?!.*ba.*ba$)(?=.*a.*ba$)(?=.*b.*ba$)(?=.*c.*ba$)[abc]+ba$
----------- ------------
| |->match further only if there's atleast 1 a
|->match further only if there's no ba
于 2013-03-08T04:37:45.370 に答える
0
正規表現を書く必要がありますか? を使用^ab([a-c]*)ba$
して文字列の中央を取得し、少なくとも 1 つの a、b、および c が含まれていることを確認し、ba が含まれていないことを確認するなど、途中でいくつかのチェックを実行することができます。
編集:さらに良いことに、正規表現を完全にスキップして、上記のすべてのチェックを実行し、ab で始まり ba で終わることを確認するチェックを追加することもできます。
于 2013-03-08T04:28:27.070 に答える
0
否定先読みを使用してこの正規表現を試しました:
^ab(a|b(?!a)|c)+ba$
この文字列に一致しますabbcabcabbbbcccaaaaaaba
が、これには一致しません:abbcabcabbabbcccaaaaaaba
于 2013-03-08T04:31:14.997 に答える