用于捕获括号括起的文本的可选组

时间:2012-01-07 01:49:45

标签: regex

我是正则表达式的新手,但需要将它用于任务,如果有人可以帮助我,我真的很感激。

我有一个字符串,可能在末尾包含一个括号括起的文本。

Something like these:
product1
product2 (enclosed text)
another product (some more enclosed text)
one more product
...

我需要将字符串分成两组。 如果没有括号,则第一个是括号前的文本或整个文本。

第二组是括号内的文本,它应该是可选的。

我尝试了(.*)(\(.*\))?,但是第一组捕获了整个字符串,包括括号。

2 个答案:

答案 0 :(得分:3)

如果您的语言支持:

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

*?使其成为“不情愿”的匹配(而不是“贪婪”的匹配)。

否则,如果您能保证永远不会有任何偏离的括号:

([^\(\)]*)(\(.*\))?

答案 1 :(得分:1)

  

<(。))(* /?)这是非常简单的答案