我在编写匹配这些输入的正则表达式时遇到问题:
1。\\r
2。\\rSomeString
我需要一个匹配\\r
答案 0 :(得分:7)
两次逃避反斜杠。 String将\
解释为特殊字符标记。
请改用\\\\r
。 \\
实际上只被解释为\
。
编辑:因此,根据评论,您希望任何以\\r
开头的字符串后跟任何字符串。正则表达式模式如下:
(\\\\r\S*)
\\\\r
是您在开始时想要的字符串,\S*
表示任何非空格(\S
)都可以在任意次(*
)之后出现。
答案 1 :(得分:1)
Python中的文字反斜杠可以与r'\\'
匹配(请注意原始字符串文字的使用!)。你有两个字面反斜杠,因此,在r
之前需要4个反斜杠(在原始字符串文字中)。
由于\\r
之后可能有任何字符,您可以使用
import re
p = re.compile(r'\\\\r\S*')
test_str = r"\\r \\rtest"
print(p.findall(test_str))
请参阅Python demo
模式说明:
\\\\
- 2个反斜杠r
- 文字r
\S*
- 零个或多个非空白字符。变体形式:
r
之后的字符只能是字母数字或下划线,请使用\w*
代替\S*
\\r
,请在模式中的反斜杠之前添加\B
非单词边界。答案 2 :(得分:0)
您可以在线微调正则表达式,例如在this site。