Python-如何在正则表达式中使用变量?

发布于 2021-02-02 23:16:56

我想在a variable内部使用regex,该怎么办Python?

TEXTO = sys.argv[1]

if re.search(r"\b(?=\w)TEXTO\b(?!\w)", subject, re.IGNORECASE):
    # Successful match
else:

    # Match attempt failed
关注者
0
被浏览
149
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    从python 3.6开始,你还可以使用文字字符串插值(“ f-strings”)。在你的特定情况下,解决方案是:

    if re.search(rf"\b(?=\w){TEXTO}\b(?!\w)", subject, re.IGNORECASE):
        ...do something
    


  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    你必须将正则表达式构建为字符串:

    TEXTO = sys.argv[1]
    my_regex = r"\b(?=\w)" + re.escape(TEXTO) + r"\b(?!\w)"
    
    if re.search(my_regex, subject, re.IGNORECASE):
        etc.
    

    请注意使用,re.escape这样如果你的文本中包含特殊字符,则不会这样解释它们。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看