我想问下正则表达式非捕获组的基本用法,大家一起来帮忙啊? 写了几个测试程序,一点没发现规律,希望大家帮帮忙...一起学习 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 原来回复的,有兴趣的话可以去看看。http://topic.csdn.net/u/20080503/01/3c82b040-43b9-4b44-847d-07b366285957.htmlhttp://topic.csdn.net/u/20080325/17/fb7a3e8d-029a-4d8e-89ae-77a9d28ec301.htmlhttp://topic.csdn.net/u/20080716/22/80cdd418-a0e9-4e7e-8435-df6d4bc11c4a.html 以(?开头,)结尾的都称为非捕捉组,在匹配完成后在内存中不保留匹配到的字符。非捕捉组的应用比较复杂,这里只能简单地说一下它们的意思。(?:X)X,作为非捕捉组与捕捉组()的意思一样也是将其作为一组进行处理,与捕捉组的区别在于不捕捉匹配的文本,仅仅作为分组。比如:要匹配123123这个,就可以写为(123)\1使用反向引用,这时只能用捕捉组,在匹配123后会保留在内存中,便于反向引用,而(?:123)在匹配完后则不会保留,区别仅在于此。(?idmsux-idmsux)Nothing,但是将匹配标志idmsuxon-off用于标志匹配,比如:表达式(?i)abc(?-i)def这时,(?i)打开不区分大小写开关,abc匹配不区分大小地进行匹配,(?-i)关闭标志,恢复不区分大小写,这时的def只能匹配def(?idmsux-idmsux:X)X,作为带有给定标志idmsuxon-off与上面的类似,上面的表达式,可以改写成为:(?i:abc)def,或者(?i)abc(?-i:def)(?=X)X,通过零宽度的正lookahead(?!X)X,通过零宽度的负lookahead(?=X)表示当前位置(即字符的缝隙)后面答应出现的字符,比如:表示式a(?=b),在字符串为ab时,可能匹配a,后面的(?=b)表示,a后面的缝隙,可以看作是零宽度。(?!X)表示当前位置后面不答应出现的字符(?<=X)X,通过零宽度的正lookbehind(?<!X)X,通过零宽度的负lookbehind这两个与上面两个类似,上面两个是向后看,这个是向前看(?>X)X,作为独立的非捕捉组匹配成功不进行回溯,这个比较复杂,也侵占量词“ ”可以通用,比如:\d 可以写为(?>\d )。 我用post模拟登陆,成功后,有个post提交的参数,调用的sendPost方法跟模拟登陆的一样,为什么无法成功? java IO流 急求C++转Java的校验和代码 新手遇到的几个不理解的问题? 如何自动生产XML 怎样获得光标位置改变的事件?(JTextArea里) 请教各位高人高高人~ 新手又来请教大神关于堆栈和队列的问题了 在jbuilder中的一个包内多个FRAME如何相互访问? 什么叫“删除一个元素,就必须移到另一个元素“? 关于用读取socket输入流的问题 怎样在java程序中控制内存的使用,比如一个程序要用大量的内存,怎么控制
http://topic.csdn.net/u/20080716/22/80cdd418-a0e9-4e7e-8435-df6d4bc11c4a.html
与捕捉组()的意思一样也是将其作为一组进行处理,与捕捉组的区别在于不捕捉匹配的文本,
仅仅作为分组。
比如:要匹配123123这个,就可以写为(123)\1使用反向引用,这时只能用捕捉组,在匹配
123后会保留在内存中,便于反向引用,而(?:123)在匹配完后则不会保留,区别仅在于此。(?idmsux-idmsux)Nothing,但是将匹配标志idmsuxon-off
用于标志匹配,比如:表达式(?i)abc(?-i)def这时,(?i)打开不区分大小写开关,abc匹配
不区分大小地进行匹配,(?-i)关闭标志,恢复不区分大小写,这时的def只能匹配def(?idmsux-idmsux:X)X,作为带有给定标志idmsuxon-off
与上面的类似,上面的表达式,可以改写成为:(?i:abc)def,或者(?i)abc(?-i:def)(?=X)X,通过零宽度的正lookahead
(?!X)X,通过零宽度的负lookahead
(?=X)表示当前位置(即字符的缝隙)后面答应出现的字符,比如:表示式a(?=b),在字符串为
ab时,可能匹配a,后面的(?=b)表示,a后面的缝隙,可以看作是零宽度。
(?!X)表示当前位置后面不答应出现的字符(?<=X)X,通过零宽度的正lookbehind
(?<!X)X,通过零宽度的负lookbehind
这两个与上面两个类似,上面两个是向后看,这个是向前看(?>X)X,作为独立的非捕捉组
匹配成功不进行回溯,这个比较复杂,也侵占量词“ ”可以通用,比如:\d 可以写为(?>\d )。