正则进阶之旅-五条
少年,入门正则后是不是很爽? 以下四则是我遭遇困境时,花费时间找出的妙方。 1. 怎么匹配相同的内容?匹配连号的数字 111
222
使用表达式:
(d)11
分组竟然可以在原地用也是666. 2. 给Notepad++一个组命名一般你可以: //查找目标:
(?<有名字的组>abcd)
//replace to:
${有名字的组}
特别的是如果你用的是notepad++,给一个组命名你需要: //查找目标:
(?<有名字的组>abcd)
//replace to:
$+{有名字的组}
3. 怎么匹配嵌套括号或者结构?你需要用平衡组.如果你百思不得其解,知道这三个字,就可以了。 (?<group>) 把捕获的内容命名为group,并压入堆栈
(?<-group>) 从堆栈上弹出最后压入堆栈的名为group的捕获内容,如果堆栈本来为空,则本分组的匹配失败
(?(group)yes|no) 如果堆栈上存在以名为group的捕获内容的话,继续匹配yes部分的表达式,否则继续匹配no部分
(?!) 顺序否定环视,由于没有后缀表达式,试图匹配总是失败
详细信息参考这里. .NET正则基础之——平衡组 4. 注释竟然有注释 (?#xxxx)
增加对匹配不会造成任何影响. 5. 非捕获分组-加速用(?:wd) 非捕获
(wd) 捕获分组
正则引擎以为你要使用所有小括号括起来的内容,如果你不用这些分组可以标记. 结语此外如果你有”通过正则合并两段文字”功能的需求,可以使用我的程序Batter_Regex ,它是一个HTML页面,你可以在任何浏览器中运行它. 对正则的学习伴随着我的成长,目前我没有更多的需求对正则. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |