Javascript 我需要在引号中匹配字符串
我需要匹配Javascript 我需要在引号中匹配字符串,javascript,regex,pattern-matching,Javascript,Regex,Pattern Matching,我需要匹配“”中的字符串,我正在使用以下命令它不起作用 var str=''hi“hello”abc\nddk“ef”gh'; console.log(str.match(/(?=”)[^“]*?(?=”)/);这应该可以做到: /(?|)(“”((?:\\“|[^”])+)\1((?:\\'.[^'])+)\1)/xg 顺便说一句:这是一个很好的资源使用(这就是我得到上面正则表达式的地方) 更新 我发布的第一篇文章适用于PHP和JS /“([^“\\]*(?:\.[^“\]*)*)”“\\w
“
”中的字符串,我正在使用以下命令它不起作用
var str=''hi“hello”abc\nddk“ef”gh';
console.log(str.match(/(?=”)[^“]*?(?=”)/);
这应该可以做到:
/(?|)(“”((?:\\“|[^”])+)\1((?:\\'.[^'])+)\1)/xg
顺便说一句:这是一个很好的资源使用(这就是我得到上面正则表达式的地方)
更新
我发布的第一篇文章适用于PHP和JS
/“([^“\\]*(?:\.[^“\]*)*)”“\\w+\]*([^'\]*(?:\.\.^'\]*)”/g
这应该可以做到:
/(?|)(“”((?:\\“|[^”])+)\1((?:\\'.[^'])+)\1)/xg
顺便说一句:这是一个很好的资源使用(这就是我得到上面正则表达式的地方)
更新
我发布的第一篇文章适用于PHP和JS
/([^“\\]*(?:\.\.[^“\]*)*)“\\\w+\]*([^'\]*(?:\.\.^'\]*)”/g
也许我读错了你的问题,但这对我有用
/\“+\”/gm
也许我读错了你的问题,但这对我有用
/\“+\”/gm
最简单的方法是:
/"[^"]*?"/g
这将返回一个带有“hi”
、“abc\nddk”
和“gh”
的数组,您可以执行类似于的操作。在单个片段上替换(/“/g”,”
)以摆脱“
。如果您不喜欢这样做,则可以执行匹配
最简单的方法是:
/"[^"]*?"/g
这将返回一个带有“hi”
、“abc\nddk”
和“gh”
的数组,您可以执行类似于的操作。在单个片段上替换(/“/g”,”
)以摆脱“
。如果您不喜欢这样做,则可以执行匹配
它在控制台中给我的错误是uncaughtsyntaxerror:提供给RegExp构造函数'xg'的标志无效
啊,是的,我现在看到了。hmmIt在控制台中给我的错误是uncaughtsyntaxerror:提供给RegExp构造函数'xg'的标志无效
啊,是的,我现在看到了。hmmthattregex不工作,如果你尝试这个字符串:“嗨“hello”abc\nddk“ef”gh“
我只需要quotes@KevinJantzer哦,所以转义的\\n
必须是字符串的一部分?抱歉,如果您尝试此字符串,则误解了正则表达式不起作用:“hi”hello“abc\nddk“ef”gh”
我只需要quotes@KevinJantzer哦,所以转义的\\n
必须是字符串的一部分?对不起,误会请你解释一下,为什么我的正则表达式不能works@PranavCBalan前瞻(?=”
实际上并不消耗“
”,因此(?=”[^“]
将永远不会匹配任何内容。@PranavCBalan--根据需要多次阅读此内容。Lookarounds是零宽度断言。它们不使用字符。所以(?=”)
的意思是“匹配紧跟着“
的位置。所以(?=”[^“]
匹配位置后加引号,然后匹配任何非引号的字符——这是一个矛盾。JavaScript正则表达式中也不支持“向后看”。请解释一下,为什么我的正则表达式不应该works@PranavCBalan前瞻(?=”)
实际上并不消耗“
所以(?=”[^“]
永远不会匹配任何内容。@PranavCBalan--根据需要多次阅读此内容。Lookarounds是零宽度断言。它们不使用字符。因此(?=”)
的意思是“匹配后跟的位置”
。因此,(?=”[^“]
匹配位置后加引号,然后匹配任何非引号的字符——这是一个矛盾。JavaScript正则表达式中也不支持查找后面。