我有一个简单的正则表达式,代码如下:
<img[^>]+src="([^">]+)"
这个正则表达式允许我获取文档中每个 img 的 src。我试图做的没有任何成功,是向它添加一个类条件,这将找到我的图像的所有具有特定类的 src。我尝试过这样的事情:
<img[^>]+src="([^">]+)" *class="name_of_my_class"
但这仅在将类插入到 src 之后才有效,并且我需要正则表达式以反向方式工作。
感谢您的帮助!
我有一个简单的正则表达式,代码如下:
<img[^>]+src="([^">]+)"
这个正则表达式允许我获取文档中每个 img 的 src。我试图做的没有任何成功,是向它添加一个类条件,这将找到我的图像的所有具有特定类的 src。我尝试过这样的事情:
<img[^>]+src="([^">]+)" *class="name_of_my_class"
但这仅在将类插入到 src 之后才有效,并且我需要正则表达式以反向方式工作。
感谢您的帮助!
已经说过你不应该使用正则表达式blablabla......
不过,如果我让你同时学习一些关于正则表达式的东西,我可以处理我的良心,所以,让我们这样做。这里的关键工具是前瞻。
/<img(?=[^>]+class="name_of_my_class")[^>]+src="([^">]+)"/
前瞻允许您在不移动字符串内的指针的情况下检查某些内容。所以基本上,你先检查一下。
如果您需要遍历文档、搜索类和返回属性,您可能会发现使用 DOM 查询工具更容易:
var imgSrcArray = [].slice.call(document.querySelectorAll('img.myClassName'),0)
.map(function(img) {
return img.getAttribute('src');
});
(示例假设启用了 querySelector 和 Array.prototype.map 的现代浏览器)
考虑到这两种情况可能是一个解决方案,在 src 属性之前或之后进行分类:
<img[^>]+?((src="([^">]+)"[^>]*?class="name_of_my_class")|(class="name_of_my_class"[^>]*?src="([^">]+)"))[^>]*>
嗯,我真的不知道如何在正则表达式中做到这一点,但我认为你可以按照以下方式做到这一点:
<img
{any charakter except >}*
(
{check for class} {any charakter except >}* {get src}
||
{get src} {any charakter except >}* {check for class}
)
{any charakter except >}*
>
*表示0次或多次