3.2.1 正则表达式的语法(1)
2015-07-25 10:18
309 查看
(?...)
这个语法规则是前面的扩展,主要在问号位置可以替换为特定的字符。
例子:
print('(?...)')
m = re.findall(r'(a...)', r'abcdefaghijk')
if m:
print(m)
输出结果如下:
(?...)
['abcd', 'aghi']
(?#...)
括号内容注释掉,不起作用。在正则表达式分析时,跳过这些规则。
例子:
print('(?#a)')
m = re.findall(u'(?#a)i', u'aiLmsux aaaadefagaiLmsuxhijk')
if m:
print(m)
输出结果如下:
(?#a)
['i', 'i', 'i']
(?=...)
向前提前识别模式,当向前面字符符合等号中的字符时,就认为匹配了,但这些字符不跳过。比如Isaac(?=Asimov),在Isaac字符后面碰到Asimov字符才会把这个Isaac识别出来,但Asimov不会跳过去。
例子:
import re
print('Isaac(?=Asimov)')
m = re.findall(u'Isaac(?=Asimov)', u'abcdIsaacAsimovttttt')
if m:
print(m)
输出结果如下:
Isaac(?=Asimov)
['Isaac']
蔡军生 QQ:9073204 深圳
这个语法规则是前面的扩展,主要在问号位置可以替换为特定的字符。
例子:
print('(?...)')
m = re.findall(r'(a...)', r'abcdefaghijk')
if m:
print(m)
输出结果如下:
(?...)
['abcd', 'aghi']
(?#...)
括号内容注释掉,不起作用。在正则表达式分析时,跳过这些规则。
例子:
print('(?#a)')
m = re.findall(u'(?#a)i', u'aiLmsux aaaadefagaiLmsuxhijk')
if m:
print(m)
输出结果如下:
(?#a)
['i', 'i', 'i']
(?=...)
向前提前识别模式,当向前面字符符合等号中的字符时,就认为匹配了,但这些字符不跳过。比如Isaac(?=Asimov),在Isaac字符后面碰到Asimov字符才会把这个Isaac识别出来,但Asimov不会跳过去。
例子:
import re
print('Isaac(?=Asimov)')
m = re.findall(u'Isaac(?=Asimov)', u'abcdIsaacAsimovttttt')
if m:
print(m)
输出结果如下:
Isaac(?=Asimov)
['Isaac']
蔡军生 QQ:9073204 深圳
相关文章推荐
- uva12546. LCM Pair Sum
- PL/SQL设置快捷键
- [主席树]HDOJ3874 Necklace
- 增加支付编辑功能
- Android英语单词记忆程序源码
- HDOJ 2004 成绩转换(水题)(多方法)
- guava(二)字符串拼接和分割
- java序列化和反序列化
- 2015-07-22 JQuery 第二课(JQ元素获取,添加,删除,判断,遍历,取值,样式设置,改变对象,切换)
- iOS应用检查更新的最优方法
- Android开发学习笔记六 ViewPagerIndicator
- hdu 3422 数论 本原勾股数组
- 有关在安装了防病毒软件的 Exchange Server 计算机上排除故障的建议
- [转]String、StringBuffer与StringBuilder之间区别
- C/C++入门基础 之类方法 入门篇
- Windows Server 笔记(七):Windows Server 2012 R2 NIC Teaming(NIC组)
- Crazy Search(POJ1200)
- Python实现将DOC文档转换为PDF的方法
- HDU 5305 Friends(2015多校联合)
- 北大ACM2105——IP Address