私が現在持っている正規表現は次のとおりです。
"^(?:(\\.\\.)|^([a-z]+[a-z.\\-]*)([\\*]?)[\\[]*([^\\]]*)[\\]]*)$";
グループ2〜4が空の「..」(グループ1)、
または:
-小文字、ドット、ダッシュのグループのいずれかをキャプチャします。小文字で始まり(グループ2)
-その後にオプションのアスタリスク(グループ3)
-角かっこで囲まれたオプションのコンテンツ(グループ4)
私はいくつかの問題を抱えています。最初は、group2が文字で終わる必要があるようにすることです。私は、次のような多くのことを試しました。
"^([a-z]+[a-z.\\-]*[a-z]$)"
"^([a-z]+[a-z.\\-]*[a-z])$"
グループ3-4のすべてを殺します
"^([a-z]+[a-z.\\-]*[a-z])"
何も変わらないようです
私が抱えているもう1つの問題は、グループ4です。角かっこに依存しません(*文字があるので意味があります)...しかし、その文字を削除しても、次のような結果は得られません。グループのいずれか。
どんな助けも大いに必要とされ、感謝されます。
以下のコメントに応じて、以下が一致する必要があります。"string" - (group1)(group2)(group3)(group4)
".." - (..)()()()
"blah" - ()(blah)()()
"blah.blah" - ()(blah.blah)()()
"blah.blah*" - ()(blah.blah)(*)()
"blah*" - ()(blah)(*)()
"blah.blah*[foobar] - ()(blah.blah)(*)(foobar)
"blah[foobar] - ()(blah)()(foobar)
以下は一致しないはずです:
"."
"..."
".blah"
"blah."
".blah*"
"blah.*[foobar]