正则怎么匹配结尾的换行符呢?
需要匹配的字符串:http {
server {
key5;
key0 value0;
key9;
}
server {
key7 value7;
}
key3;
}
double = r'\s*"[^"]*"'single = r'\s*\'[^\']*\''
normal = r'\s*[^;\s]*'
s1 = r'{}|{}|{}'.format(double, single, normal)
s = r'^\s*({})\s*((?:{})+);'.format(s1, s1)
m = re.compile(s, re.S).search(data[index:])
if m:
print '>>>', m.group(1), m.group(2)
如果s变量用分号作为结尾匹配则可以成功,结果为
>>> key5 >>> key0 value0
>>> key9
>>> key7 value7
>>> key3
但是如果原配置文件结果不是分号,而是仅仅是一个换行的话,为什么用以下s变量则匹配失败呢?
s = r'^\s*({})\s*((?:{})+)\n'.format(s1, s1)
输出结果却为:
>>> key5 key0 value0 key9
}
server {
key7 value7
}
key3
回答:
用正则匹配" title="正则匹配">正则匹配的方式
回答:
问问题之前先搜一下吧: 请问如何用正则匹配换行符n?
以上是 正则怎么匹配结尾的换行符呢? 的全部内容, 来源链接: utcz.com/a/163574.html