猿问

需要正则表达式在字符串中查找 \n 或 \r

我想搜索一个字符串以查看其中是否有任何 \n 或 \r 字符。

如果我将正则表达式设置为 re.compile(r'(\n)') 它可以很好地查找 \n。但是,如果我尝试执行以下 re.compile(r'\\[nr]') 或 re.compile(r'\[nr]') 来找到任何一个,它就不起作用。

我知道第二个失败是因为 \[ 转义了括号并让它寻找那个。使用 r'\[nr]',调试器 (Visual Studio Code) 中的模式将搜索模式显示为 '(\\\\[n])'。我不知道我做错了什么。https://regex101.com/r/eZ1gT7/6#python 上的正则表达式测试器适用于:(\[nr])。提前致谢。


泛舟湖上清波郎朗
浏览 445回答 3
3回答

慕沐林林

当您[]在正则表达式中使用时,它从字面上接受任何字符。但是\n和\r是单个控制字符的两字符字符串表示形式。你想要的是r'(\n|\r)'

MM们

为什么是正则表达式?crlf = set('\r\n')def contains_cr_lf(text):    """Returns True if text includes linefeeds or carriage returns as characters."""    return any(x in crlf for x in text)for t in ["Some text \t without: ","""Some textwith them: """]:    print t, contains_cr_lf(t) 结果:Some text    without:  FalseSome textwith them:  True
随时随地看视频慕课网APP

相关分类

Python
我要回答