在以下内容示例中,我将行换行以使其在 Stackoverflow 上更易于阅读(因此您不必向右滚动即可查看示例)。
内容一:
"Lorem Ipsum\r\n
[img]http://example.org/first.jpg[/img]\r\n
[img]http://example.org/second.jpg[/img]\r\n
more lorem ipsum ..."
内容 B:
"Lorem Ipsum\r\n
[img caption="Sample caption"]http://example.org/third.jpg[/img]
[img]http://example.org/fourth.jpg[/img]"
内容 C:
"Lorem Ipsum [img]http://example.org/fifth.jpg[/img]\r\n
more lorem ipsum\r\n\r\n
[img caption="Some other caption"]http://example.org[/img]"
我试过的:
content.match(/\[img\]([^<>]*)\[\/img\]/imu)
return example: "[img]...[/img]\r\n[img]...[/img]
content.scan(/\[img\]([^<>]*)\[\/img\]/imu)
return example: "...[/img]\r\n[img]..."
在上述 3 个内容示例上运行扫描/匹配/正则表达式解决方案时,我想要完成的是获取每次出现的[img]...[/img]
并将[img caption="?"]...[/img]
其放入数组中以供以后使用。
Array
1 : A : [img]http://example.org/first.jpg[/img]
2 : A : [img]http://example.org/second.jpg[/img]
3 : B : [img caption="Sample caption"]http://example.org/third.jpg[/img]
4 : B : [img]http://example.org/fourth.jpg[/img]
5 : C : [img]http://example.org/fifth.jpg[/img]
6 : C : [img caption="Some other caption"]http://example.org[/img]
将“剥离的内容”限制在只有打开和关闭标记的地方也很有帮助,这意味着当有[img]
/[img caption="?"]
和之后丢失[/img]
时,忽略它。
我已经阅读了http://www.ruby-doc.org/core-1.9.3/String.html上下但找不到任何似乎对此有用的东西。
更新:
所以我认为这是:
\[img([^<>]*)\]([^<>]*)\[\/img\]
会发现:
[img]something[/img]
和:
[img caption="something"]something[/img]
现在我只需要知道如何捕捉不同内容中的每一次出现。我总是可以从第一个到最后一个 [img][/img] 标签中获取它,所以当中间有其他 Lorem Ipsum 时,它也会被抓取。