我有两个HTML字符串:
a="<div> foo: <span>bar</span> </div>"
b="<div> foo: bar <br> </div>"我想从每个字符串中找到foo: bar。
我想这样做的方法是从“foo”这个词中找到,直到我遇到一个“<”字符。
我可以用正则表达式来完成这个任务:
foo([^(<)]+)这只会从string b中找到"foo: bar“,而不会从string a中找到,因为<span>标记在路上。因此,我想编写regex,以便从foo中查找,直到它发现一个忽略<span>标记的<字符。
这些只是这些字符串中的一部分,因此它必须像状态一样工作,也就是说,我不能开始删除标签,等等。
基本上,我需要知道的是如何找到字符串中的所有字符,直到遇到某个字符为止,除非该字符后面跟着一组指定的字符,即查找直到<,但是如果<后面跟着span>,则查找下一个<。
有人知道怎么做吗?
发布于 2013-11-27 13:50:08
虽然使用regexp从HTML中提取内容通常是不好的,但您可以这样解决问题:
foo, bar = string.gsub(/<.*?>/, '').strip.split编辑:好吧,那么您可能想看看前面对regexp:(?!regpattern)的负面看法。
string[/(foo.*)<((?!span|\/span))/,1]
# match foo followed by all character until < unless the character after that is /span or spanhttps://stackoverflow.com/questions/20244111
复制相似问题