正则表达式之优美匹配,视前匹配,视后匹配 (?x)(?=) (?=)

Posted pyming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式之优美匹配,视前匹配,视后匹配 (?x)(?=) (?=)相关的知识,希望对你有一定的参考价值。

接着昨天的内容今天探讨,优美匹配和视前和视后匹配

1.格式化匹配

import re

reg = r‘‘‘(?x)(\d{4})?  #匹配前四个 支持注释        
            (-)?
            (\d{8})
‘‘‘
num = 0571-88982571, 0572-05975867,057269781578, 0539-66862954, 56788888
pat = re.findall(reg, num)
#print(pat)

for each in pat:
    print(‘‘.join(each))#连接

>>>
0571-88982571
0572-05975867
057269781578
0539-66862954
56788888

2.视前匹配 查找匹配项,但匹配项不显示在结果中,而是返回(?=)前面的匹配项

import re

reg = r.+(?= ming lili)
s = ‘‘‘ hello ming lili python
 welcome to home ming lili java
 hello python
 xxio
‘‘‘
pat = re.findall(reg, s)
print(pat)

>>>
[‘ hello‘, ‘ welcome to home‘]

3.视后匹配 没搞明白,上个例子

import re 
reg = r\s+(?!ming|lily)(\w+)
s =‘‘‘
    [email protected]
    [email protected]
    [email protected]
    [email protected]
   ‘‘‘
pat = re.findall(reg, s)
print(pat)
>>>
[‘\nhello‘, ‘world‘, ‘welcome‘, ‘to‘, ‘home ‘]

 

以上是关于正则表达式之优美匹配,视前匹配,视后匹配 (?x)(?=) (?=)的主要内容,如果未能解决你的问题,请参考以下文章

玩转正则表达式(Regular),这个世界正在奖励偷偷用心的人

最全的正则表达式之二

Java SE之正则表达式六:匹配规则

[正则表达式]匹配Unicode

javascript 正则表达式之分组与前瞻匹配详解

Nginx中的正则如何匹配数字