一尘不染

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

python

我想在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

阅读 1617

收藏
2020-02-18

共2个答案

一尘不染

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

if re.search(rf"\b(?=\w){TEXTO}\b(?!\w)", subject, re.IGNORECASE):
    ...do something
2020-02-18
一尘不染

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

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这样如果你的文本中包含特殊字符,则不会这样解释它们。

2020-02-18