我从jQuery中获取了一个正则表达式来检测浏览器的引擎是否为WebKit并获取它的版本号,它返回从userAgent
字符串中提取的3个值:webkit / ... ....,webkit和.... ...... [“...... ......”是版本号]。
我希望正则表达式只返回2个值:webkit和...... .......
我对正则表达式很垃圾,所以请你能用你的答案解释一下表达方式。
我正在使用并希望改进的正则表达式为:
。/(webkit)[\/]([\w.]+)/
从/(webkit)[\/]([\w.]+)/
这个正则表达式返回:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13
。我希望它只返回webkit/525.13,webkit,525.13
。
我感谢您的帮助,提前谢谢!
答案 0 :(得分:1)
在正则表达式中,返回的值是括号中的值:
/([a-z]+)-#(\d+)/.exec("abc-#123")
// ["abc-#123", "abc", "123"]
您可以通过在其开头添加?:
来使这些群组不匹配:
/(?:[a-z]+)-#(\d+)/.exec("abc-#123")
// ["abc-#123", "123"]
重新阅读问题后进行修改。
正则表达式的返回将包含(如上面的示例所示)整个匹配的字符串,然后是匹配的组。如果您只想要匹配的组,只需切掉第一个值:
myRegex.exec(userAgent).slice(1);
// ["webkit", "525.13"] <-- note that this is an array
答案 1 :(得分:0)