私が作成したアプリケーションの文字列を解析しようとしています。 アスタリスクが続き、特定の単語が最初に出現しなかった場合にのみカンマで区切りたいと思います。「CONDITION」としましょう。 !Example,Value,1,*SPLIT_THIS=True,*AND_THIS=True,*CONDITION=Something/ELSE:!Example,Value,2,*DONT_SPLIT=True,*AND_NOT_THIS=True,*CONDITION=SomethingElse/ELSE:False
特定の単語までカスタムデリミタで正規表現を分割する文字列
は以下のように分割する必要があります。例:文字列のためにそう、だから、
["!Example,Value,1", "*SPLIT_THIS=True", "*AND_THIS=True", "*CONDITION=Something/ELSE:!Example,Value,2,*DONT_SPLIT=True,*AND_NOT_THIS=True,*CONDITION=SomethingElse/ELSE:False"]
、より多くの「CONDITION」の存在で、よりコンマアスタリスクがあるかもしれませんが、私は唯一まで分割したいです"CONDITION"の最初の出現。私は(?=(CONDITION))
または(?=CONDITION)
のような肯定的な先読みを、アスタリスク(アスタリスクを含まず)の後にコンマで区切るには',\*'
としましたが、正しいものを見つけることができません。どんなポインタも非常に役に立ちます。
あなたはこれを達成するために単一の正規表現を使用することはできないと私は考えていません。 –
https://ideone.com/rLvOsPにチェックを入れ、問題がないかどうかをお知らせください。 –
ほぼ完成!文字列の最後の部分(2番目のCONDITION部分)はアスタリスクで始まらなければなりませんが、この例ではありません。迅速な返答をありがとう、私はそれが単一の式で動作させることができると思って頑固になっていたが、明らかにそれは不可能です。最初の分割はそのトリックをうまくやっています。 – Dima1982