我试图通过JavaScript中的单个常规表达来匹配两个案例的字符串。该字符串可以是任何一种给定格式
//Singapore
//Singapore (country)
我尝试了以下正则表达式来匹配字符串
"singapore".match(/(.*) (?:\((.*)\))?/)
//null
"singapore (country)".match(/(.*) (?:\((.*)\))?/)
//["singapore (country)", "singapore", "country"]
我希望结果都返回一个数组,就像第二种情况一样,数组中的第三个条目可以是未定义/空的,或者根本不存在,但结果不应该为空。
这可以通过单个正则表达式完成。如果是,则上述表达式中的错误是什么
答案 0 :(得分:4)
您需要将空间放在可选组中,因为仅"singapore"
/^([^\(]*)(?: \(([^\)]*)\))?$/
{}}