2012-07-23 93 views
2

我想要一个正则表达式可以匹配一个组或两个组。这是一个看起来如何的例子。无论是这样的:正则表达式匹配一个或两个组或两者都

(键)

或者这样:

(密钥 “值”)

到目前为止,我想出了一个表达式与后面的例子匹配。但我不知道如何修改它,以便匹配第一个或后一个。那就是:

\((?P<property_key>[^() ]+) "(?P<property_value>[^"]*)"\) 
+0

是'regex'这样做的(整个)正确的答案?为什么不简单匹配带括号的表达式,然后在空白处分割(x,1)'它们呢? – kojiro 2012-07-23 20:17:11

回答

1

我相信你正在寻找的正则表达式模式

\((?P<property_key>\w+)(?:\s+"(?P<property_value>\w+)")?\) 
+0

哦!如何切割机解决方案,你想出了!非常感谢你,它解决了我所有的问题。愿这支部队与你同在,年轻的伙伴。 – Eric 2012-07-24 08:00:34

相关问题