Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
在bbedit中使用regex/GREP返回字符串中未知数量的字符串_Regex_Grep_Bbedit - Fatal编程技术网

在bbedit中使用regex/GREP返回字符串中未知数量的字符串

在bbedit中使用regex/GREP返回字符串中未知数量的字符串,regex,grep,bbedit,Regex,Grep,Bbedit,因此,我基本上有数千行wp_post表,以sql更新语句的形式。我想从每行中提取所有图像标记,同时将它们保持在同一行(比仅提取要困难1步),同时保留该行中唯一的其他变量,该变量始终位于末尾。我可以将regex图像标记从文件中删除,但这样每行只剩下1个标记。如何在保留正确行号的同时,从每行中提取多个(数量未知,且会有所不同)图像标记 例如: Insert into `table` (post_content, guid) values ('<img src="blah">alkajsd

因此,我基本上有数千行wp_post表,以sql更新语句的形式。我想从每行中提取所有图像标记,同时将它们保持在同一行(比仅提取要困难1步),同时保留该行中唯一的其他变量,该变量始终位于末尾。我可以将regex图像标记从文件中删除,但这样每行只剩下1个标记。如何在保留正确行号的同时,从每行中提取多个(数量未知,且会有所不同)图像标记

例如:

Insert into `table` (post_content, guid) values ('<img src="blah">alkajsdljasdmorecontent<img src="blaaaa">','http://foo.com');
Insert into `table` (post_content, guid) values ('<img src="blah">alkajsdljasdmorecontent','http://foo.com');
Insert into `table` (post_content, guid) values ('<img src="blah">alkajsdljasdmorecontent<img src="blaaaa"><img src="blaaaa">','http://foo.com');
插入“表”(post_内容,guid)值('alkajsdljasdmorecontent','http://foo.com');
将值('alkajsdljasdmorecontent','http://foo.com');
将值('alkajsdljasdmorecontent','http://foo.com');
我想返回:

<img src="blah"><img src="blaaaa"> http://foo.com
<img src="blah"> http://foo.com
<img src="blah"><img src="blaaaa"><img src="blaaaa"> http://foo.com
http://foo.com
http://foo.com
http://foo.com
我通常可以像这样跑步

<img.*?>
.*(<img.*?>).*'.'(http://.*?)'\);\r

提取所有图像标记,但我希望图像标记保留在它们来自的行上,并在每行上保留结束值(guid)

我可以用像这样的东西

<img.*?>
.*(<img.*?>).*'.'(http://.*?)'\);\r
*().'.'(http://.*?\)\R
返回第二个示例所需的内容,但在第一个或第三个示例中,它不会同时返回或全部返回三个图像标记

有什么想法吗?或者你明白我的意思吗?

你可以用这个

查找:
()|(http:.+\b)|(.)

替换
\1\2


单击“全部替换”

以便保留第一个参数中的所有标记,然后打印第二个参数。我不明白的是,为什么在预期的输出中打印
而不是
。@fedorqui,这是我的错误,没有保持它们的一致性。看下面的答案,这就是我想要做的。这正是我想要的。我稍微调整了一下,因为文件是以制表符分隔的,所以我在搜索中在http之前包含了一个制表符,这样它就不会在标记或其他地方拉出https。谢谢你扩展了我的正则表达式工具包!