VSCode中用于多行搜索的正则表达式

时间:2019-01-09 21:07:13

标签: regex visual-studio-code

我在VScode中有一个正则表达式,用于查找没有alt =“”和title =“”标记的img行(用于SEO),而我找不到格式错误的多行的解决方案。

例如我的正则表达式:

<img((?!alt\=\".*\").)*((?!title\=\".*\").)*>

适用于:

example1

但不适用于:

example2

我尝试了类似的操作:

<img\n*\t*\s*\r*((?!alt\=\".*\").)*((?!title\=\".*\").)*\n*\t*\s*\r*>

但是它也不能工作。

我正在寻找解决方案,因为我有15k行的html代码具有第二种格式设置(可能是从wordpress帖子中复制粘贴)。

如果您要复制它,这是我的示例行:

<img class="img-responsive vertical-center" src="someImage.png" style="height: 65%; width: auto;" alt="" >

1 个答案:

答案 0 :(得分:1)

您要的东西真的很棘手,我最近来的是交换。除非您在regex参数中指定,否则为[^>]。将不匹配换行符。

<img((?!alt\=\".*\")[^>])*((?!title\=\".*\")[^>])*>

但是实际上不建议您使用正则表达式解析html,您可以在this demo中看到。即使测试用例数量有限,也很难抓住所有问题。参数可以是任何顺序,可以包含转义字符,并且标记可以相互对接。

我想您知道HTML的干净程度如何,以及属性中的值是多少。也许我强调的大多数测试用例都不适用于您?但您的问题并未指明这一点。如果我做出的假设有误,请修改您的问题。