我在寻找一个正则表达式,字符#
和##
只能在文字字符串中出现一次。#和##只能在文字字符串中出现一次
应该匹配:
a#abc
a#bc##e
a##bc#e
a##e
但它应该是不符合要求的约:
a#a#b#c
a##bc##e
a##bc##e##d
a###e
我在寻找一个正则表达式,字符#
和##
只能在文字字符串中出现一次。#和##只能在文字字符串中出现一次
应该匹配:
a#abc
a#bc##e
a##bc#e
a##e
但它应该是不符合要求的约:
a#a#b#c
a##bc##e
a##bc##e##d
a###e
您可以使用下面的正则表达式,这两种模式的交替组成:
##
匹配,则可能出现单个#
单#
匹配,然后##
可能出现
^[^#]*(?:##[^#]*#?|#[^#]*(?:##)?)[^#]*$
如果正则表达式应该匹配字符串没有任何#
,才使整个交替可选:
^[^#]*(?:##[^#]*#?|#[^#]*(?:##)?)?[^#]*$
好点,感谢您的关注! 这里我想补充过滤条件。如果字符串是'null'或'#'和'##'在该字符串中不会出现一次,它也应该符合。 它也应该匹配: –
@HenryChen我提供的第二个正则表达式应该可以正常工作,它可以匹配空字符串和不包含'#'的字符串 – Aaron
是的,它确实有道理。再次感谢你!我会采纳这个想法。 –
是一个没有被认为是正确的字符串? – Aaron
对于简单的子字符串匹配,这似乎很简单。它是否需要成为正则表达式? –
什么是编程语言? – RomanPerekhrest