首页 >> 文摘 >> JAVA

非捕获组的详解!

采集日期:2008-5-4作者:anqini(注:本数据由系统自动采集,内容与BHCODE无关)
以 (? 开头,) 结尾的都称为非捕获组,在匹配完成后在内存中不保留匹配到的字符。 非捕获组的应用比较复杂,这里只能简单地说一下它们的意思。 (?:X) X,作为非捕获组 与捕获组 ( ) 的意思一样也是将其作为一组进行处理,与捕获组的区别在于不捕获匹配的文本, 仅仅作为分组。 比如:要匹配 123123 这个,就可以写为 (123)\1 使用反向引用,这时只能用捕获组,在匹配 123 后会保留在内存中,便于反向引用,而 (?:123) 在匹配完后则不会保留,区别仅在于此。 (?idmsux-idmsux)  Nothing,但是将匹配标志i d m s u x on - off 用于标志匹配,比如:表达式 (?i)abc(?-i)def 这时,(?i) 打开不区分大小写开关,abc 匹配 不区分大小地进行匹配,(?-i) 关闭标志,恢复不区分大小写,这时的 def 只能匹配 def (?idmsux-idmsux:X)   X,作为带有给定标志 i d m s u x on - off  与上面的类似,上面的表达式,可以改写成为:(?i:abc)def,或者 (?i)abc(?-i:
本周推荐
MORE
热点关注
MORE