主要使用的有下面三种:
1. (...)
Grouping. Group items into a single unit that can be used with *, +, ?, |, and so on. Also remember the characters that match this group for use with later references.
2. (?:...)
Grouping only. Group items into a single unit, but do not remember the characters that match this group.
3.
(?=p) A positive lookahead assertion. 或
(?!p) A negative lookahead assertion.
用于测试的字符串:url(skins/default/images/index/default.png)
红色字符为匹配上的结果
第一种,用于普通分组,能记住匹配该分组的字符串,并且可以在以后通过\1的方式来引用所匹配到的分组
eg: (\/)匹配url(skins/default/images/index/default.png)
(\/)default\1匹配url(skins/default/images/index/default.png)
第二种,用于分组,不记录匹配该分组的字符串
eg: (?:\/)default匹配url(skins/default/images/index/default.png)
第一、二两种方式匹配的结果里都包含有该分组匹配到的结果,在例子中是"/default"中的"/"
第三种,只用于确定位置,最终结果里并不包含该括号匹配到的结果
eg: (?!\/)default匹配url(skins/default/images/index/default.png)
eg: default(?=\/)匹配url(skins/default/images/index/default.png)
您可能感兴趣的文章:正则表达式匹配括号外的符号及数据java正则表达式获取大括号小括号内容并判断数字和小数亲测可用正则表达式中test、exec、match的区别介绍及括号的用法Python正则表达式实现截取成对括号的方法使用JS正则表达式 替换括号,尖括号等浅谈JS正则表达式的RegExp对象和括号的使用python正则表达式中的括号匹配问题正则表达式(括号)、[中括号]、{大括号}的区别小结php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串正则表达式去除中括号(符号)及里面包含的内容