包含所需部分的最大长度的字符串的正则表达式?

时间:2009-12-03 10:33:09

标签: regex

我不是一个正则表达式的大师,所以我很难找到以下情况的正则表达式。

我想匹配最长为20的<prefix>$rolename$<suffix>形式的字符串(例如abc$rolename$def)。<prefix><suffix>都可以为空并且可以包含任何字符。 $rolename$部分是必需的。

应该不难,但我无法弄清楚如何做到这一点。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:6)

由于你必须使用正则表达式,正如你所解释的,这里有一个选项:

^(?!.{21,})(.*?)\$rolename\$(.*?)$

这与约阿希姆的答案相似,但在开头有一个负面的预测。也就是说:在匹配正则表达式之前,我们检查字符串是否没有21个或更多字符。

答案 1 :(得分:1)

我使用的正则表达式是/^([^\$]*)\$rolename\$([^\$]*)$/,从外部验证字符串的总长度。

答案 2 :(得分:-1)

为什么正则表达式?想简单吧。根据您的语言,使用您的语言的字符串长度方法检查长度,例如使用Python

if len(mystring) <= 20:
     if "$rolename" in mystring:
         print "ok"

您的语言可能有类似index()的方法来查找子字符串在字符串中的位置。