1.如何简单的描述例如a|b的组合的情况,我现在只能用(a|b|ab|ba)这样处理
2.如何做到对应匹配,比如我要截取(),[],<>等内部的数据,\(\[<[\)\]>]的话就可能不对应了
[code=""]1. 一眼看去就想到 [ab]{1,2},但会包括 aa 和 bb ……
貌似正则没很好的办法 …… \[(\w+)\]|\((\w+)\)|\<(\w+)\> 这样?
非贪婪的: \[.*?\]
或者循环遍历所有字符,用栈保存开括号保证嵌套。
或者通过 Antlr 之类的东西生成解析器。
另外,perl 的正则有递归组,能比较好的处理括号嵌套。[/code]
1.
[code="java"]"[ab]{1, 2}"[/code]
会得到ab所有组合匹配的形式,包括重复
2.
不是很懂楼主的意思,是要求() [] <>不包含同样的标签么?
下面可以解决这个问题。
[code="java"]
"\([^)]*\)"
"\[[^]]*\]"
"<[^>]*>"
[/code]