匹配字符串正则表达式与可选(foobar)

时间:2012-03-22 09:22:07

标签: regex

我有这些数据:

/blabla/blabla (abs,def)

/yxz

我使用这个正则表达式

(.*)(?:\(([^$]*)\))?\n

但它不起作用,我不知道什么是错的。

我需要第一个“目录”信息,并选择“()”中的信息。

3 个答案:

答案 0 :(得分:1)

此正则表达式提取组1中的第一个目录以及()之间的任何内容(可选):

/([^/]*)(?:\((.*?)\)|.)*

请告诉我这是否有效或需要一些帮助。

Match 1:    /blabla/blabla (abs,def)         0      24
Group 1:    blabla       1       6
Group 2:    abs,def     16       7
Match 2:    /yxz        28       4
Group 1:    yxz     29       3
Group 2 did not participate in the match

编辑快速乔

答案 1 :(得分:1)

尝试使用一些在线正则表达式匹配器(例如:http://www.rubular.com/)来自行测试。其中许多都具有匹配突出显示功能,您可以通过它们优化您的正则表达式

答案 2 :(得分:0)

也许是这样的事情? ([^(\n]+)(?:\(([^)]*)\))?