【问题标题】:Regular expression: 'func("aaa", "bbb");' - find "aaa" and "bbb"正则表达式:'func("aaa", "bbb");' - 找到“aaa”和“bbb”
【发布时间】:2015-08-13 10:14:34
【问题描述】:

我有一个类似的字符串: 'some text........ func("aaa", "bbb"); more text..'

如何使用正则表达式获得“aaa”和“bbb”? (群)

提前致谢。

【问题讨论】:

  • /(\(\w+,\s*\w+\))/
  • 由于今天大家都在喂汤匙,所以我添加我的答案。

标签: javascript regex


【解决方案1】:

应该这样做:

r=/.*func\("([^&"]*)", *"([^&"]*)"\).*/
s='some text........ func("aaa", "bbb");  more text..'
result = r.exec(s)
val1 = result[1]
val2 = result[2]

【讨论】:

    【解决方案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/>");
    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-04
      • 2015-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      相关资源
      最近更新 更多