文字列のリストがあります。それらのいくつかはの形式123-...456
です。可変部分 "..."は次のとおりです。
- 文字列 "apple"とそれに続くハイフン
123-apple-456
- 文字列 "banana"とそれに続くハイフン
123-banana-456
- 空白の文字列、たとえば
123-456
(ハイフンは1つしかありません)
「apple」または「banana」以外の単語は無効です。
この3つのケースでは、それぞれ「apple」、「banana」、「」を照合します。ハイフンはキャプチャしたくありませんが、常に一致させたいことに注意してください。文字列が123-...456
上記の形式でない場合は、まったく一致しません。
これを行うには正規表現をどのように記述すればよいですか?先読み、後読み、先読み、非キャプチャグループを許可するフレーバーがあると仮定します。
ここで重要なのは、「apple」または「banana」のいずれかがある場合、末尾のハイフンも必要ですが、一致させたくないということです。また、空白文字列を照合する場合は、末尾にハイフンを付けないでください。この主張をカプセル化する正規表現は正しいものだと思います。