快速回答:这个正则表达式有什么问题?

Quick one: What's wrong with this RegEx?

本文关键字:正则表达式 什么 问题      更新时间:2023-09-26

我有这段代码:

_regex = /((?<!placeholder)'w+(?:'s*='s*(?:"[^"]*"|'[^']*')))/;     
imgTag = imgTag.replaceAll(_regex, ' ');

我也试过这个代替:

imgTag = imgTag.replace( new RegExp( /((?<!placeholder)'w+(?:'s*='s*(?:"[^"]*"|'[^']*')))/, "gi" ), ' ');

但是我的代码从来没有传递过这个行:

_regex = /((?<!placeholder)'w+(?:'s*='s*(?:"[^"]*"|'[^']*')))/;     

this line:

imgTag = imgTag.replace( new RegExp( /((?<!placeholder)'w+(?:'s*='s*(?:"[^"]*"|'[^']*')))/, "gi" ), ' ');

问题在我的正则表达式中,对吧?

我看不见,谁能帮我点灯?

谢谢!

Javascript不支持向后看。你不能这样写:

(?<!placeholder)

使用向前看:

((?!placeholder).{11}|^.{0,10})

您还需要调整您的替换字符串,因为它匹配的是在您想要替换的字符串开始之前的额外字符。


这也不会工作:var regex = new Regexp(/.../, "gi");

改为:var regex = /.../gi;

JavaScript不支持向后看模式。(这是(?< pattern )部分)