请帮我分割一个字符串以放入数组。
字符串:
<p>TEXT1</p>
<p><img src="img1.jpg"></p>
<p>TEXT 2</p>
<p><img src="img2.jpg"></p>
<p>TEXT3</p>
我需要通过
拆分它<p><img src="*****"></p>
在结果数组中:
result[0]:
<p>TEXT1</p>
<p><img src="img1.jpg"></p>
result[1]
<p>TEXT 2</p>
<p><img src="img2.jpg"></p>
result[2]
<p>TEXT3</p>
UPD:
:001> str = '<p>TEXT 1</p><p><img src="/upload/posts/13/009781884.jpg"></p><p>TEXT 2</p><p><img src="/upload/posts/14/010098317.jpg"></p><p>TEXT3</p>'
:002> array = str.scan(/<p>[a-zA-Z 0-9<\/>]*<img src="[\/a-zA-Z0-9.]*"><\/p>|<p>[a-zA-Z 0-9\d\D]*<\/p>/)
=> ["<p>TEXT 1</p><p><img src=\"/upload/posts/13/009781884.jpg\"></p>", "<p>TEXT 2</p><p><img src=\"/upload/posts/14/010098317.jpg\"></p>", "<p>TEXT3</p>"]
答案 0 :(得分:0)
这个怎么样:
split(/(.*?<p><img src=".*?"><\/p>)\n/m).delete_if(&:blank?)
?
s将匹配限制为最小长度,正则表达式末尾的m
使其成为多行匹配。有空白结果,因此我们删除了delete_if(&:blank?)