正则表达式的一些问题

1.如何简单的描述例如a|b的组合的情况,我现在只能用(a|b|ab|ba)这样处理
2.如何做到对应匹配,比如我要截取(),[],<>等内部的数据,\(\[<[\)\]>]的话就可能不对应了

[code=""]1. 一眼看去就想到 [ab]{1,2},但会包括 aa 和 bb ……

  1. 貌似正则没很好的办法 …… \[(\w+)\]|\((\w+)\)|\<(\w+)\> 这样?
    非贪婪的: \[.*?\]

    或者循环遍历所有字符,用栈保存开括号保证嵌套。

    或者通过 Antlr 之类的东西生成解析器。
    另外,perl 的正则有递归组,能比较好的处理括号嵌套。[/code]

1.
[code="java"]"[ab]{1, 2}"[/code]
会得到ab所有组合匹配的形式,包括重复
2.
不是很懂楼主的意思,是要求() [] <>不包含同样的标签么?
下面可以解决这个问题。
[code="java"]
"\([^)]*\)"
"\[[^]]*\]"
"<[^>]*>"
[/code]