我可以从此正则表达式中删除OR

时间:2012-05-03 12:44:02

标签: regex

我有这个正则表达式

((.*?)(\(.*?\))|(.*?)) 

我想删除|因为我认为有更好的方法来匹配这个。以下是我希望它匹配的一些示例字符串

myString

myString(1234)

如果它有括号我想将括号内容作为单独的捕获组捕获。它永远不必捕获两种类型的字符串。

2 个答案:

答案 0 :(得分:3)

由于(...)部分是可选的,您可以使与其匹配的子正则表达式也可选:

((.*?)(\(.*?\))?)  

答案 1 :(得分:0)

只需使用

.*?(\(.*?\))?

这使得括号内的部分可选,如果括号内的部分不存在,则第一个.*?将匹配所有内容。