首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

正则表达式学习 三 选择、分组和后向引用

2013-12-20 
正则表达式学习 3 选择、分组和后向引用选择可以在两种或者更多的模式中选择一个如?(The|the|THE) 匹配?THE

正则表达式学习 3 选择、分组和后向引用
选择可以在两种或者更多的模式中选择一个如?(The|the|THE) 匹配?THE?RIME OF?THE?ANCYENT MARINERE, IN SEVEN PARTS.也可以使用 (?i)the 达到相同效果(不区分大小写)。?正则表达式中的选项(?d) Unix中的行(?i) 不区分大小写(?J) 允许重复的名字(?m) 多行(?s) 单行(dotall)(?u) Unicode(?U) 默认匹配最短(?x) 忽略空格和注释(?-...) 复原或关闭选项?子模式(t|T)h(e|eir) 匹配the The their Their子模式括号不是必须的使用字符组的子模式\b[tT]h[ceinry]*\b 可以匹配thee thence之类的?使用\1 或$1可以后向引用之前用圆括号捕获的内容?(\d)\d\1 可以匹配101?也可以给分组命名,这样引用的时候就可以用名字而不是数字了如 用(?<one>it is)命名 用$+{one} 引用命名分组的语法(?<name>...) 命名分组(?name...) 另一种命名分组的方式(?P<name>...) ? ?Python中命名分组\k<name> ? ? ? Perl中引用\k'name' ? ? ? ? ?Perl中引用\g{name} ? ? ? ?Perl中引用\k{name} ? ? ? ?.Net中引用(?P=name) ? ? ?Python中引用?不想引用分组的时候可以使用非捕获分组,由于不在内存中存储所以性能较高比如(the|The|THE)就是也可以这么写(?i)(?:the)也可以这样(?:(?i)the)更推荐这样(?i:the)?另一种非捕获分组是原子分组,如果用正则表达式引擎进行回溯,这种分组就可以将回溯操作关闭,它只针对原子分组内的部分,而不针对整个正则表达式如(?>the)原子分组主要与性能有关,书上没有过多介绍

热点排行