![](/img/trans.png)
[英]Search in a string and obtain the 2 words before and after the match in Python
[英]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.