首页 > 解决方案 > 需要正则表达式在字符串中查找 \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])。提前致谢。

标签: pythonregexpython-2.7

解决方案


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


推荐阅读