允许在正则表达式中出现一次

时间:2017-04-04 07:49:22

标签: regex

我想用一些字符限制我的正则表达式,例如< > @#并且只允许出现一次|字符。到目前为止,我没有成功。

^([^<>@#]+[|]?)$

无法弄清楚如何将我的正则表达式限制为仅出现一次|炭。

1 个答案:

答案 0 :(得分:2)

使用否定前瞻:

^(?!(?:[^|]*\|){2})[^<>@#]+$

请参阅regex demo

<强>详情:

  • ^ - 字符串的开头
  • (?!(?:[^|]*\|){2}) - 除|以外|
  • 之外,不能出现2次0+字符
  • [^<>@#]+ - 除<>@#
  • 以外的1个或多个字符
  • $ - 字符串结束。
相关问题