これは正規表現の簡単な仕事です。私はこのモデルに基づいて構築された文字列に取り組んでいます: elem1/elem2@attr
(単語文字で構成され/
、@
セパレータとして使用されます)。
elem1/
、elem2
、の 3 つの部分をキャプチャしようとして@attr
いますが、有効な文字列では 3 つの部分のいずれかを省略できることがわかっています (ただし、区切りの順序は尊重する必要があります)。
私はこの正規表現を思いつきました:
^(\w+\/)?(\w+)?(@\w+?)$
ただし、最後の部分 が存在する場合にのみ機能し@attr
ます。これらの文字列にも一致するソリューションが必要です: elem1/
, elem2
, elem1/elem2
.
何か案が?