私が渡したいものの例は次のとおりです。
- 「..」
- 「ああ」
- 「ああ*」
- "何とか何とか"
- 「何とか何とか*」
- [@attrib="value"]または[@attrib="value" and @attrib2="value2" and ...] を末尾に追加した2 ~ 5 (NOT 1) のいずれか
私が渡したくないものの例は次のとおりです。
- ""
- 「。」
- " "
- 「……」
- 「.blah」
- 「-何とか」
基本的に「..」が欲しい
また
ドットまたはダッシュを含むがそれらで始まらない az の文字列 (オプションで * が続きます) (オプションで属性/値のリストが続きます)
グループは次のとおりです。
- ".." またはドット/ダッシュを含むが先頭にない文字列 az
- "*" または一致しない場合は StringUtils.EMPTY
- 属性のグループ、または一致しない場合は StringUtils.EMPTY
私が現在持っている正規表現は次のとおりです。
"^([a-z]+[a-z.\\-]*)([\\*]*)[\\[]*([^\\]]*)[\\]]*"
...「..」だけの場合、または最初のグループが文字で始まり、ドットまたはダッシュで終わる場合、これは機能しません。これらの 2 つのケースで機能させるために私がやろうとしたことはすべて、全体を台無しにしてしまいました。
すべての助けに感謝します。
以下のコメントの正規表現を介して、この正規表現で動作するコードを少し変更すると、「..」で動作しますが、文字のみで終わる最初のグループではまだ動作していません。そのグループの最後に [az]+$ を追加してみました:
"^(\\.\\.|^([a-z]+[a-z.\\-]*[a-z]+$)([\\*]*)[\\[]*([^\\]]*)[\\]]*)$"
...しかし、それは後者のグループで問題を引き起こします