我正在寻找一个正则表达式,字符#
和##
只能在文字字符串中出现一次。
它应匹配:
a#abc
a#bc##e
a##bc#e
a##e
但它应该是不符合的:
a#a#b#c
a##bc##e
a##bc##e##d
a###e
答案 0 :(得分:2)
您可以使用以下正则表达式,由这两种模式的替换组成:
##
,然后可能会出现一个#
匹配单个#
,然后可能会出现##
^[^#]*(?:##[^#]*#?|#[^#]*(?:##)?)[^#]*$
如果正则表达式应匹配没有任何#
的字符串,只需将整个交替选项设为可选:
^[^#]*(?:##[^#]*#?|#[^#]*(?:##)?)?[^#]*$