JAVA 正则表达式 分组

几个原则:

分组的编号从1开始

遇到()加1

遇到断言跳过,如(?:exp)这种格式的,如果要算的话就,((?:exp))

PS:(pattern)这样就算一个分组

例子:

"<a\\s+([^>h]|h(?!ref\\s))*(?<=[\\s+]?href[\\s+]?=[\\s+]?('|\")?)([^\"|'>]+?(?=\"|'))(.+?)?((?<=>)(.+?)?(?=</a>))";

这个表达式有11对括号

5个红色的是断言

所以它有6个分组

编号从左到右,从外到内依次递增
   

原文地址:https://www.cnblogs.com/yangyh/p/1721599.html