我正在寻找帮助来制作一个正则表达式,该表达式检测任意长度的字符串中的10个(或更多)字符'%'或'='或':'的计数。
到目前为止,我已经检查了以下来源,但似乎无法调整发布到我需要的内容:
另外,我自己尝试了以下表达式,但它们与我的字符串不匹配。 (我一直用“pcretest”来检查比赛)
/[%=:]{10,}/
/[a-zA-Z0-9](:|%|=){10,}/
任何人都可以提供协助吗?
答案 0 :(得分:2)
如果字符串中包含10个(或更多)字符:%=:
,其中包含任意数量的其他字符,则此正则表达式将匹配:
/(?:[^%=:]*[%=:]){10}/
如果您需要匹配包含至少10的整个字符串,请使用以下字符串:
/^(?:[^%=:]*[%=:]){10}[\S\s]*$/
您没有说他们是否需要连续。这个答案假设没有。
答案 1 :(得分:1)
...
怎么样:
/[%=:]{1000,}/
答案 2 :(得分:1)
cnt = 0
for each character in string:
if character is '%' or ':' or '=':
cnt++
if cnt >= 10: # or 100 or 1000
SUCCESS
break
答案 3 :(得分:0)
这将取决于您正在使用的正则表达式引擎,但这应该有效:
/([%:=][^%:=]*){10,}/
根据您的编程语言,您可能需要使用前导反斜杠转义括号和括号(例如:/\([%:=][^%:=]*\)\{10,\}/
)。
这将匹配您选择的一个字符{'%',':','='},可选地,跟随该组中不包含的任意数量的字符,十次或更多。