在正则表达式中使用变量

2024-09-28 01:29:37 发布

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

请点击此处:

我只是在玩正则表达式,我遇到了这样一个问题:

import re

while True:
    userInput = input('Type in your string here: ')
    regexInput = input('Enter Regex pattern here:')

    testRegex = re.compile([^regexInput])
    testMO = testRegex.search(userInput)
    print(testMO.group())

基本上,我希望我的regex匹配除了我通过regexInput指定的模式之外的所有东西。但是,我从这段代码中得到了语法错误。我认为在character类的开头括号后面放一个胡萝卜,这意味着Python将搜索除括号外的所有内容? 我在做第七章的最后一个项目,自动化无聊的事情。 如何使代码与regexInput中键入的内容以外的所有内容匹配?你知道吗

有人告诉我:

regex expects string so you have to create string:

"[^" + regexInput +"]" or "[^{}]".format(regexInput)

我真的不完全理解这个回答,尤其是回答的第二部分。为了验证他说的话,我用了以下代码:

import re

while True:
    userInput = input('Type in your string here: ')
    regexInput = input('Enter Regex pattern here:')

    testRegex = re.compile(regexInput)
    testMO = testRegex.search(userInput).group()
    print(testMO)

这给了我一个输出:

Type in your string here: Here lies Batman.
Enter Regex pattern here:Batman
Batman
Type in your string here: 

这难道不意味着regex也接受了一个变量,并使它工作了吗?所以我对另一个人说的话有点困惑,因为这似乎与他所说的“regex需要一个字符串”相矛盾。你知道吗


Tags: inreinputyourstringheretyperegex

热门问题