【发布时间】:2015-08-13 10:14:34
【问题描述】:
我有一个类似的字符串:
'some text........ func("aaa", "bbb"); more text..'
如何使用正则表达式获得“aaa”和“bbb”? (群)
提前致谢。
【问题讨论】:
-
/(\(\w+,\s*\w+\))/ -
由于今天大家都在喂汤匙,所以我添加我的答案。
标签: javascript regex
我有一个类似的字符串:
'some text........ func("aaa", "bbb"); more text..'
如何使用正则表达式获得“aaa”和“bbb”? (群)
提前致谢。
【问题讨论】:
/(\(\w+,\s*\w+\))/
标签: javascript regex
应该这样做:
r=/.*func\("([^&"]*)", *"([^&"]*)"\).*/
s='some text........ func("aaa", "bbb"); more text..'
result = r.exec(s)
val1 = result[1]
val2 = result[2]
【讨论】:
您可以使用正则表达式轻松获取它们
func\("([^"]+)",\s*"([^"]+)"\);
这里,
func\(" - 匹配 func( 字面意思([^"]+) - 匹配并捕获到第 1 组 1 个或多个字符,而不是 " ",\s*" - 引号、逗号、可选空格和引号([^"]+) - 匹配并捕获除 " 之外的 1 个或多个字符
"\); - 字面上匹配 ");
如果您不需要匹配换行符,[^"]+ 可以替换为 [^"\n]。
查看演示:
var rx = /func\("([^"]+)",\s*"([^"]+)"\);/g;
s='some text........ func("aaa", "bbb"); more text.. func("ccc", "ddd");';
while ((m=rx.exec(s))!== null) {
document.write("Input: " + m[0] + "<br/>");
document.write("First: " + m[1] + "<br/>");
document.write("Second: " + m[2] + "<br/>");
}
【讨论】: