请点击此处:
我只是在玩正则表达式,我遇到了这样一个问题:
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
需要一个字符串”相矛盾。你知道吗
[^regexInput]
不是语法上有效的Python表达式。看起来您正在尝试创建由字符[^
组成的字符串,后跟变量regexInput
的值,后跟字符]
。用Python编写的一种方法是:'[^' + regexInput + ']'
。你知道吗相关问题 更多 >
编程相关推荐