什么是RegEx以确保分隔符被转义?

时间:2012-12-02 05:02:01

标签: regex

我正在寻找一个正则表达式,它将检查字符串中的分隔符是否使用反斜杠进行转义。

我关注的分隔符是逗号(\,),冒号(\ :),分号(\;),当然反向斜杠本身必须转义(\)。

例如,字符串“test”应返回匹配项,因为其中没有分隔符,并且不需要转义。字符串“te \; st”将返回匹配,因为分号分隔符已转义。 “te; st”和“t \; s:t”都会失败,因为两者都包含至少一个未转义的分隔符。

我知道我需要有条件和积极的看法,这是我到目前为止所做的,但它没有给我预期的答案。

^(?<delimiter>[:;,\\])?(?(delimiter)\(?<=(?:\\\\)*\\)k<delimiter>|.)$

关于如何使这项工作的任何建议?

感谢。

1 个答案:

答案 0 :(得分:6)

^(?:[^,:;\\]|\\.)*$

^           # beginning of string
(?:  )*     # 0 or more of:
  [^,:;\\]  #  a normal (non-delimiter) character
|           # or:
  \\.       #  an escaped character (backslash + any)
$           # end of string

也就是说,每个字符串都必须是转义字符或非分隔字符。