我正在寻找一种正则表达式的方式,将我的所有东西在一段文字到第一个空白行。我有以下内容:
reg = r'((Opposition|Oppose):?\s*)(.*?)\n\n'
str1 = """Opposition
California Attorneys for Criminal Justice
Californians for Safety and Justice
Drug Policy Alliance
Friends Committee on Legislation of California
Legal Services for Prisoners with Children
Analysis Prepared
"""
str2 = """Oppose: None received
-- END --
"""
当我跑步时:
^{pr2}$我得到:
California Attorneys for Criminal Justice
Californians for Safety and Justice
Drug Policy Alliance
Friends Committee on Legislation of California
Legal Services for Prisoners with Children
但当我跑的时候:
match = re.search(reg, str2, re.DOTALL)
print match.group(3)
我得到:
None received
-- END --
第一个字符串的结果是正确的,但我希望从第二个字符串得到的结果是“None received”。我想不出一个很好的解释为什么我也会得到“--END--”。我的正则表达式是否应该在“没有接收到”以及“空行”上的“n”和“停止”之后匹配\n?任何帮助都将不胜感激
您可以确保只匹配空白行与
[^\S\n]*
(匹配0个或更多字符,而不是非空白或换行符):见demo
我也缩短了第二个捕捉组。在
这是一个IDEONE demo
相关问题 更多 >
编程相关推荐