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

标签 javascript regex

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

//Singapore
//Singapore (country)

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

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

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

这可以通过单个正则表达式来完成吗?如果是,那么上面的表达式有什么错误

最佳答案

您需要将空格放入可选组中,因为在 "singapore" 的情况下它不在这里: /^([^\(]*)(?:\(([^\)]*)\))?$/

关于javascript - 将字符串与正则表达式匹配返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36475590/

相关文章:

JavaScript : unable to merge two arrays

java - 为什么 Java 将字符串放在单词之前而不是之后?

c# - 如何匹配正确的组名(.NET C# Regex)

javascript - 密码正则表达式的问题

特殊字符的正则表达式 "until but not including"(使用 R)

javascript - 更改 select 的默认选项的 css

javascript - js后台视频调整中心

java - 正则表达式在空格和其他字符上分割字符串

javascript - 如何验证多选下拉列表?

javascript - 为什么我的 JQuery 返回 init[0] 长度 0?