我试图通过 JavaScript 中的单个正则表达式来匹配两种情况的字符串。该字符串可以是给定格式中的任何一种
//Singapore
//Singapore (country)
我尝试了以下正则表达式来匹配字符串
"singapore".match(/(.*) (?:\((.*)\))?/)
//null
"singapore (country)".match(/(.*) (?:\((.*)\))?/)
//["singapore (country)", "singapore", "country"]
我希望两个结果都返回一个数组,就像第二种情况一样,其中数组中的第三个条目可以是未定义/空或根本不存在,但结果不应该为空。
这可以通过单个正则表达式来完成吗?如果是,那么上面的表达式有什么错误
最佳答案
您需要将空格放入可选组中,因为在 "singapore"
的情况下它不在这里: /^([^\(]*)(?:\(([^\)]*)\))?$/
关于javascript - 将字符串与正则表达式匹配返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36475590/