代码之家  ›  专栏  ›  技术社区  ›  Ronald Wildenberg

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

  •  4
  • Ronald Wildenberg  · 技术社区  · 15 年前

    我想匹配表单的字符串 <prefix>$rolename$<suffix> abc$rolename$def )最大长度为20。二者都 <prefix> <suffix> 可以为空,并且可以包含任何字符。这个 $rolename$ 零件是必需的。

    3 回复  |  直到 15 年前
        1
  •  6
  •   Kobi    15 年前

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

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

    这与约阿希姆的答案相似,但在开始时是消极的。也就是说:在匹配正则表达式之前,我们检查字符串不包含21个或更多字符。

        2
  •  1
  •   Joaquim Rendeiro    15 年前

    /^([^\$]*)\$rolename\$([^\$]*)$/ ,从外部验证字符串的总长度。

        3
  •  -1
  •   ghostdog74    15 年前

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

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