我在尋找一個正則表達式,字符#
和##
只能在文字字符串中出現一次。#和##只能在文字字符串中出現一次
應該匹配:
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