当我想检查输入正则表达式是否正确时,我遇到了一些问题。
我想检查每个符号前是否有一个反斜杠,但我不知道如何使用Python实现。
例如:
number: 123456789
。 (返回False
)phone\:111111
(返回True
)我尝试在Python中使用(?!)
和(?=)
,但它不起作用。
更新
我想匹配以下字符串:
\~
,\!
,\@
,\$
,\%
,\^
,\&
,\*
,\(
,\)
,\{
,\}
,\[
,\]
,\:
,\;
,{ {1}},\"
,\'
,\>
,\<
非常感谢。
答案 0 :(得分:0)
检查整个字符串是由单个字符还是反斜杠+符号对组成:
import re
def has_backslash_before_every_symbol(s):
return re.match(r"^(\\[~!@$%^&*(){}\[\]:;"'><?]|[^~!@$%^&*(){}\[\]:;"'><?])*$", s) is not None
Python正则表达式引用:https://docs.python.org/3/library/re.html
答案 1 :(得分:0)
changed
有效吗?
答案 2 :(得分:0)
在线条之间进行一点阅读,听起来你正试图将字符串传递给正则表达式,并且你想确保它没有未转义的特殊字符。
Python的re
模块有一个内置的re.escape()
函数。
示例:强>
>>> import re
>>> print(re.escape("phone:111111"))
"phone\\:111111"