文字列内の区切り文字がバックスラッシュでエスケープされているかどうかをチェックする正規表現を探しています。
私が懸念している区切り文字は、コンマ(\、)、コロン(\ :)、セミコロン(\;)であり、もちろん、円記号自体はエスケープする必要があります(\)。
たとえば、文字列 "test"には区切り文字がなく、エスケープする必要がないため、一致を返す必要があります。文字列"te\; st"は、セミコロン区切り文字がエスケープされているため、一致を返します。「te;st」と「t\;s:t」はどちらも、エスケープされていない区切り文字が少なくとも1つ含まれているため、失敗します。
私は条件付きで前向きな見方が必要であることを知っています、そしてこれは私がこれまでに持っているものです、しかしそれは私に期待された答えを与えていません。
^(?<delimiter>[:;,\\])?(?(delimiter)\(?<=(?:\\\\)*\\)k<delimiter>|.)$
これを機能させる方法について何か提案はありますか?
ありがとう。