在下面的內容示例中,我包裝了行以便於在Stackoverflow上閱讀(因此您不必滾動到右側以便看看例子)。Ruby/Rails掃描/匹配正則表達式從標記到另一個文本
內容答:
"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]
這也將是有益的限制「剝內容」只有那裏是一個開放的,closign標籤,當有[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介於兩者之間時,它也會被抓取。