有効な文字列 がありsomestr xyztip
、xyz
はオプションです。ただし、xyz
存在する場合は、 tip
(空白なし) の隣にある必要があります。したがって、有効な文字列は次のとおりsomestr tip
ですsomestr xyztip
。
無効な文字列は次のようになります: (とsomestr xyz tip
の間のスペース)xyz
tip
多くの組み合わせを試しましたが、正規表現が「xyz」と「tip」の間のスペースでボークすることはできません。以下のものは、私がうまくいくと思うものです:
/^.+?\s(xyz)?tip$/
問題は、'(xyz)?' の前の構文です。- それは '.+?\s' です。これは任意の char を 1 回以上言っており、貪欲の後に 1 つの空白が続いているわけではありません。
ここで何が欠けていますか?