0

私は RegEx のことを本当に理解していないと思うので、次の単純なパターンに一致する助けが必要です:

SOME_TEXT _Syn: SYN_TEXT _Ant: ANT_TEXT

引用符は装飾的で、任意のテキスト (特殊な省略形である: または: をX_TEXT含まない) であり、_Syn または _Ant 部分はオプションです_Syn_Ant

を取得する必要がありSOME_TEXT、配列でSYN_TEXTANT_TEXT

たとえば、_Syn 部分が存在しない場合 (入力がSOME_TEXT _Ant: ANT_TEXT)、結果は次のようになります。[SOME_TEXT, '', ANT_TEXT]

遅延修飾子を使用してさまざまなアプローチを試みましたが、実装に失敗しました。

4

2 に答える 2

2
/(.*?)(?:_Syn:(.*?))?(?:_Ant:(.*?))?$/

重要な部分は、(貪欲ではなく) 消極的にする?afterと、すべてのオプションの一致にもかかわらず強制的に一致させる at the end です。.*$

于 2013-07-05T16:30:00.100 に答える