这是一个匹配正则表达式的程序
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/