次の2つの属性を持つ 'a'と 'b'を含む文字列の正規表現を検索しています: 1:文字列に偶数の文字があります 2: ^(ab|bb|(ba(?!a)))*$
特定の条件で文字列を検索する
基本的には文字列は任意の順序で混合ab
、bb
、ba
部分文字列で構成されなければならないと言う、しかしba
は別に従うことができない:それは簡単にPerl互換の正規表現で行うことができる「AA」
次の2つの属性を持つ 'a'と 'b'を含む文字列の正規表現を検索しています: 1:文字列に偶数の文字があります 2: ^(ab|bb|(ba(?!a)))*$
特定の条件で文字列を検索する
基本的には文字列は任意の順序で混合ab
、bb
、ba
部分文字列で構成されなければならないと言う、しかしba
は別に従うことができない:それは簡単にPerl互換の正規表現で行うことができる「AA」
が含まれていますa
文字。
文字列の長さは偶数であり、これらの部分式の長さはすべて偶数であるためです。 aa
は文字列には現れません。表示される唯一の方法はサブ文字列baab
ですが、正規表現ではbaの後にはa
が続くように特に制限されています。
それが標準で可能です(古い)正規表現:
(ab|bb|(ba)*bb)*(ba)*
方法について:
/(?=^(?:..)+$)(?!aa)(?=.*a)(?=.*b)/
説明:それを行うことがほとんど不可能である
/ : delimiter
: control there are an even number of char
(?= : positive lookahead
^ : begining of string
(?: : non capture group
.. : 2 characters
)+ : one or more times
$ : end of string
)
: control there aren't aa
(?! : negative look ahead
aa : aa
)
: control there is at least an a
(?= : positive lookahead
.*a : at least an a
)
: control there is at least a b
(?= : positive lookahead
.*b : at least a b
)
/ : delimiter
1つの正規表現で。 – kirilloid
3つの正規表現でこれを行うことができるはずです。各条件に1つ:P – ArjunShankar
文字列には 'a'と' b'または 'abcd'だけが有効な文字列ですか? – Toto