我怎么能';用python中的变量创建这个正则表达式?
我试图创建一个正则表达式来替换目标字符串中存储在我怎么能';用python中的变量创建这个正则表达式?,python,Python,我试图创建一个正则表达式来替换目标字符串中存储在word中的字符串的所有word实例: regex = re.compile("\\b" + word + "\\b") Python抱怨“raiseerror,v#invalid expression”。为什么会有错误?我一定要避开反斜杠,对吗?因为re.compile不知道它的部分输入来自用户,所以应该使用word中的特殊字符(如括号)匹配这些字符,而不是在正则表达式中使用它们的特殊含义,例如: ``` 由于re.compile不知道其输入的
word
中的字符串的所有word实例:
regex = re.compile("\\b" + word + "\\b")
Python抱怨“raiseerror,v#invalid expression”。为什么会有错误?我一定要避开反斜杠,对吗?因为
re.compile
不知道它的部分输入来自用户,所以应该使用word
中的特殊字符(如括号)匹配这些字符,而不是在正则表达式中使用它们的特殊含义,例如:
```
由于
re.compile
不知道其输入的一部分来自用户,因此应使用使word
中的特殊字符(如括号)与这些字符匹配,而不是在正则表达式中使用它们的特殊含义,如下所示:
```
word
的内容是什么?re.compile(“\\b”+“lalalala”+“\\b”)
对我来说很好。当您打印word
时会得到什么?如果是用户提供的,您可能需要使用re.escape(word)
。如果代码包含无效的正则表达式模式内容,这将保护您的代码不会崩溃。如果您确实想允许word
包含正则表达式内容,您可能只需要捕获异常并向用户提供适当的反馈。word
的内容是什么?重新编译(“\\b”+“lalalala”+“\\b”)
对我来说很好。当您打印word
时会得到什么?如果是用户提供的,您可能需要使用re.escape(word)
。如果代码包含无效的正则表达式模式内容,这将保护您的代码不会崩溃。如果您确实希望允许word
包含regex内容,那么您可能只需要捕获异常并向用户提供适当的反馈。
import re
word = 'Par(ens'
regex = re.compile("\\b" + re.escape(word) + "\\b")