正则表达式匹配“\\ r”

时间:2016-08-31 22:08:04

标签: python regex

我在编写匹配这些输入的正则表达式时遇到问题:
1。\\r
2。\\rSomeString
我需要一个匹配\\r

的正则表达式

3 个答案:

答案 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