将字符串与正则表达式匹配将返回null

时间:2016-04-07 12:02:01

标签: javascript regex

我试图通过JavaScript中的单个常规表达来匹配两个案例的字符串。该字符串可以是任何一种给定格式

//Singapore
//Singapore (country)

我尝试了以下正则表达式来匹配字符串

"singapore".match(/(.*) (?:\((.*)\))?/)
//null
"singapore (country)".match(/(.*) (?:\((.*)\))?/)
//["singapore (country)", "singapore", "country"]

我希望结果都返回一个数组,就像第二种情况一样,数组中的第三个条目可以是未定义/空的,或者根本不存在,但结果不应该为空。

这可以通过单个正则表达式完成。如果是,则上述表达式中的错误是什么

1 个答案:

答案 0 :(得分:4)

您需要将空间放在可选组中,因为仅"singapore" /^([^\(]*)(?: \(([^\)]*)\))?$/ {}}