【问题标题】:Javascript match between ' and ') not working'和'之间的Javascript匹配)不起作用
【发布时间】:2014-10-10 19:50:23
【问题描述】:

我试图从我创建的函数中取出字符串。

我想获取 '')

之间的字符串

无格式字符串

('parameter 1','parameter 2 it's harder');

我想得到以下字符串

parameter 2 it's harder

我在 javascript 中使用了匹配表达式,但我无法正确输出参数

这是我试过的表达方式:

获取'和'之间的字符

string1.match(/\(([^()]+)\)/g)

获取 ( 和 ) 之间的字符

string1.match(/,'([^']+)'/)

有谁知道用什么模式来获取'和'之间的字符)

【问题讨论】:

  • 括号里总是有两个字符串吗?
  • 第二个参数是真的吗?值内的单引号不会被转义。
  • 这是不正确的语法,无法真正解析,因为:(START)'parameter 2 it'(STOP)s hard', you have a ' inside the string
  • 如果您的参数中有非转义的',您将始终遇到此问题。
  • 这是你想要的吗? regex101.com/r/nR9yJ9/1

标签: javascript regex expression match


【解决方案1】:

您在第二个给定参数中有语法错误!但是 - 忽略这个错误 - 你可以用这个正则表达式得到结果:

'([^,]+)(?='\))

寻找第一个捕获组。 Live demo

【讨论】:

    【解决方案2】:

    parameter 2 it's harder
    

    撇号未转义。使用\' 转义字符串,然后它应该适合你。

    【讨论】:

      【解决方案3】:

      这适用于您的确切示例:/','(.*?)'\)/

      ...但是,您应该按照 cmets 中的建议真正修复源格式。你会用它做解析噩梦。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-24
        • 2015-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-07
        相关资源
        最近更新 更多