で終わるすべての行に一致する正規表現を作成しようとしています:XYZ
で終わる行を除くAAXYZ
.
いくつかの例:
ABCXYZ
- 一致する必要がありますAAXYZ
- 一致してはいけませんABXYZ
- 一致する必要があります
次の式で始めまし.*[^A][^A]XYZ$
たが、例 3 では機能しません
ここでは、正規表現はやり過ぎのようです。
var matches = myInput.Split(new[] {'\n'}, StringSplitOptions.RemoveEmptyEntries)
.Where(x => x.EndsWith("XYZ") && !x.EndsWith("AAXYZ"))
.ToList();
正規表現が必要な場合は、次のようにすることができます。
^(|.|.*[^A].|.+[^A])XYZ$
これは、パイプで区切られた交替のすべての可能性を単純に拡張します。
XYZ
XYZ
(例: AXYZ
)XYZ
(例: QAXYZ
, foobarBAXYZ
)XYZ
(例: XBXYZ
, foobarXYZ
)