Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正则表达式:获取匹配字符和另一个字符之间的字符串_Javascript_Regex_Wordpress - Fatal编程技术网

JavaScript正则表达式:获取匹配字符和另一个字符之间的字符串

JavaScript正则表达式:获取匹配字符和另一个字符之间的字符串,javascript,regex,wordpress,Javascript,Regex,Wordpress,我对下面的文本和正则表达式方法有问题。我从我的服务器(Wordpress数据库)检索文本,我想用Regex从中提取图像src 服务器中的字符串如下所示: ... [other_directives ...] [et_pb_image admin_label="Bild" src="http://url.com/wp-content/uploads/2015/08/imageXYZ.jpg" show_in_lightbox="off" url_new_window="off"

我对下面的文本和正则表达式方法有问题。我从我的服务器(Wordpress数据库)检索文本,我想用Regex从中提取图像
src

服务器中的字符串如下所示:

...
[other_directives ...]
[et_pb_image admin_label="Bild" 
    src="http://url.com/wp-content/uploads/2015/08/imageXYZ.jpg"
     show_in_lightbox="off" url_new_window="off" animation="left" sticky="off" align="left" 
    force_fullwidth="off" always_center_on_mobile="on" use_border_color="off" 
    border_color="#ffffff" border_style="solid" alt="some text"]
[other_directives ...]
...
我想搜索
et_pb_image
字符串,并想提取其中
src
文本撇号之间的文本

纯正则表达式可以这样做吗

编辑

到目前为止我所尝试的(我是一个正则表达式初学者):

这将返回src,但带有
src=“…”
标记。

使用javascript:

myLongString.match( /et_pb_image.+\s+src="(.+)"/g )


您需要非常小心地使用正则表达式解析此类文本。几乎每一次我们都要假设一些事情。因此,在本例中,假设在
et_pb_image
src
属性之间没有
]
。此外,我们假设src属性值包含在

然后,你可以使用

var re=/et_pb_image[^\]*?src=“([^”]+)”/ig;
var str='.\n[其他指令…]\n[et\u pb\u image admin\u label=“Bild”\n show\u in\u lightbox=“off”url\u new\u window=“off”animation=“left”sticky=“off”align=“left”\n force\u fullwidth=“off”总是在移动设备上居中使用边框http://url.com/wp-content/uploads/2015/08/imageXYZ.jpg“\n[其他\u指令…]\n、 ..\n\n..\n[其他\u指令…]\n[et\u pb\u image admin\u label=“Bild”\n src=”http://url.com/wp-content/uploads/2015/08/imageXYZ.jpg“border\u color=“#ffffffff”border\u style=“solid”alt=“some text”]\n在\u lightbox=“off”url\u new\u window=“off”animation=“left”sticky=“off”align=“left”\n force\u fullwidth=“off”始终居中显示\u打开\u mobile=“on”使用\u border\u color=“off”\n\n border\u color=“#ffffffff”border\u style=“solid”alt=“some text”]\n[其他指令…]\n.\n.\n[其他指令…]\n[et\u pb\u image admin\u label=“Bild”\n src=”http://url.com/wp-content/uploads/2015/08/imageXYZ.jpg\n在\u lightbox=“off”url\u new\u window=“off”animation=“left”sticky=“off”align=“left”中显示\n force\u fullwidth=“off”always\u center\u on\u mobile=“on”use\u border\u color=“off”\n border\u color=“#ffffffff”border\u style=“solid”alt=“some text”]\n[其他指令…];
var-m;
while((m=re.exec(str))!==null){
如果(m.index==re.lastIndex){
re.lastIndex++;
}
文件。写(m[1]+“
”);
}
您尝试过什么吗?请邮寄。你确定你需要的是JS而不是PHP的解决方案吗?你能分享一下你到目前为止的尝试吗?@Stribizev我已经用我以前的尝试更新了我的问题。是的,我需要它在JS中,因为我收到了AngularJS(Ionic App Development)的字符串。@Stribizev-只是好奇,你为什么认为这行不通?如果
src
不在下面的行中,它就行不通了。此外,如果另一个属性在同一行上,它将超过匹配。看,太棒了!顺便说一句,我认为它可能只适用于
/et_pb_image[^]*?src=“(.+?)”/ig
。最后,可能需要修改您的
str
以使
src=…
具有不同的值,以说明代码确实提取了匹配的不同实例。是的,但是
[^]
不可移植,并且会引起不必要的问题:)。另外,
+?
比否定字符类效率更低。@Stribizev谢谢您的回答!很好用!
myLongString.match( /et_pb_image.+\s+src="(.+)"/g )