我不是一个正则表达式的大师,所以我很难找到以下情况的正则表达式。
我想匹配最长为20的<prefix>$rolename$<suffix>
形式的字符串(例如abc$rolename$def
)。<prefix>
和<suffix>
都可以为空并且可以包含任何字符。 $rolename$
部分是必需的。
应该不难,但我无法弄清楚如何做到这一点。任何人都可以帮助我吗?
答案 0 :(得分:6)
由于你必须使用正则表达式,正如你所解释的,这里有一个选项:
^(?!.{21,})(.*?)\$rolename\$(.*?)$
这与约阿希姆的答案相似,但在开头有一个负面的预测。也就是说:在匹配正则表达式之前,我们检查字符串是否没有21个或更多字符。
答案 1 :(得分:1)
我使用的正则表达式是/^([^\$]*)\$rolename\$([^\$]*)$/
,从外部验证字符串的总长度。
答案 2 :(得分:-1)
为什么正则表达式?想简单吧。根据您的语言,使用您的语言的字符串长度方法检查长度,例如使用Python
if len(mystring) <= 20:
if "$rolename" in mystring:
print "ok"
您的语言可能有类似index()的方法来查找子字符串在字符串中的位置。