トップページに戻る    次の正規表現パズルへ    前の正規表現パズルへ

5-16 Bが続くAが1個で、Bが続かないAが1個

正規表現パズル

Bが続くAが1個で、かつ、
Bが続かないAが1個
の行を検索する。

検索前


検索後


対象データ

A
AB
ABA
ABAXX
XXABA
ABC
BA
BAB
BAA
AAA
ABB
AAXX
AXX
ABAB
ABXXXAX


正規表現

^(?=.*A(?=B))
(?!.*A(?=B).*A(?=B))
(?=.*A(?!B))
(?!.*A(?!B).*A(?!B)).*$

別解

^(?=.*AB)
(?!.*AB.*AB)
(?=.*A(?!B))
(?!.*A(?!B).*A(?!B)).*$


解説

Bが続くAが1個以上ある
かつ
Bが続くAが2個以上ではない
かつ
Bが続かないAが1個以上ある
かつ
Bが続かないAが2個以上ではない

という論理積を求めてます。
以下と同値です。

Bが続くAが1個で、かつ、
Bが続かないAが1個

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
数学の同値命題(連立不等式)
Xは1以上の自然数である。かつ、Xは2以上の自然数でない。 ⇔ X=1
を使ってます。