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

2024-04-24 20:02:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在regex中使用variable,如何在Python中执行此操作?

TEXTO = sys.argv[1]

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

Tags: researchifmatchsysvariableelseregex
3条回答
rx = r'\b(?<=\w){0}\b(?!\w)'.format(TEXTO)
if re.search(r"\b(?<=\w)%s\b(?!\w)" % TEXTO, subject, re.IGNORECASE):

这将把TEXTO中的内容作为字符串插入regex。

必须将regex构建为字符串:

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的用法,这样如果文本有特殊字符,它们就不会被解释成这样。

相关问题 更多 >