1

自習中にいくつかの講義ノートで見つけた問題の正規表現を書く必要があります。この正規表現は、abxba形式の文字列に一致します。ここで、xは、部分文字列としてbaを含まないa、b、およびcの文字列です。私がこれまでに持っているのはです^ab(a+c+b+|a+b+c+|b+c+a+|c+a+b+)ba$が、それは明らかに不完全です。誰か助けてもらえますか?

4

3 に答える 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 に答える