繁体   English   中英

正则表达式-匹配以获取\\ r \\ n之前和之后的单词

[英]Regex - match to obtain words before and after \r\n

为什么我的正则表达式不匹配?

SOURCE[\s]*[:]*[\s]*(\r\n|\r|\n)*[\[#x3000\]]*[A-Za-z \!\.\-]*

文本

\xa0SOURCE:\r\nHult International Business School\r\n\r\n\r\n\r\n\r\nSUBJECT: ENTREPRENEURSHIP (92%); 

我的正则表达式尝试。 在这里似乎可以正常工作。 http://regex101.com/r/aB7nJ2

由于某些原因,只有[\\ s]捕获了\\ r \\ n。 我不明白为什么。 使用[\\ s] *解决了它。

您的正则表达式模式是否用原始字符串定义 如果是这样,则应匹配:

In [25]: import re

In [26]: text = '\xa0SOURCE:\r\nHult International Business School\r\n\r\n\r\n\r\n\r\nSUBJECT: ENTREPRENEURSHIP (92%);'

In [27]: re.search(r'SOURCE[\s]*[:]*[\s]*(\r\n|\r|\n)*[\[#x3000\]]*[A-Za-z \!\.\-]*', text)
Out[27]: <_sre.SRE_Match at 0xb0bffa0>

文档

原始字符串符号(r“文本”)使正则表达式保持理智。 如果没有它,则正则表达式中的每个反斜杠('\\')都必须加上另一个前缀以转义。

缺少一些转义?

SOURCE[\s]*[:]*[\s]*(\\r\\n|\\r|\\n)*[\[#x3000\]]*[A-Za-z \!\.\-]*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM