javascript - 正则表达式与句子中的分号匹配

标签 javascript regex

这是一个匹配正则表达式的程序

string="Mozilla/5.0 (Series40; NOKIA311/03.81; Profile/MIDP-2.1 Configuration/CLDC-1.1) Gecko/20100401 S40OviBrowser/2.2.0.0.31";
regex=/(nokia).*([a-zA-Z0-9]+)/i
regex.exec(string)

我的问题是它与 NOKIA 和 311 不匹配

有人可以帮忙吗

最佳答案

问题在于.*,它尝试尽可能多地匹配。它实际上最终匹配了字符串的整个其余部分,并且只留下最后的 1 以满足 [a-zA-Z0-9]+。您可能需要更具体的正则表达式:

/nokia(\d+)/i
/nokia(.*?)\//i

.*? 使 .* 不情愿,因此它只会匹配第一个斜杠。

关于javascript - 正则表达式与句子中的分号匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15359025/

相关文章:

javascript - 如何使用javascript递归替换单个正则表达式中文本字符串中的重复逗号

python - ' ^' Character Matches Both ' <' and ' >' 在 Python 正则表达式中

javascript - 如何在街景 map 中添加搜索选项我的谷歌地图插件

javascript - 尝试使用javascript创建一个函数来放大图像

javascript - 如何在正则表达式中创建或运算符?

javascript - 正则表达式在上次匹配后得到异常

regex - 多行正则表达式应在文件中匹配多次(如果可能,单行命令)

javascript - AngularJs:是否可以从外部将值传递给 Controller ​​或指令?

javascript - 谷歌地图3重绘折线闪烁

javascript - 无法使用 Webpack DevServer 接收我的 js 和 css 文件