正则怎么匹配结尾的换行符呢?

正则怎么匹配结尾的换行符呢?

需要匹配的字符串:

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

回到顶部