元素需要我想要提取的内容
这是在与Nokogiri进行解析之后的element.content
["\n \n \n \n itemId[0]=1234;\n \n \n \n \n \n \n \n My Project: First Edition\n \n ", "\n \n \n \n itemId[1]=2345;\n \n \n \n \n \n \n \n My Second Edition\n \n ", "\n \n \n \n itemId[2]=1234;\n \n \n \n \n \n \n \n Third\n \n \n"]
我能够获得itemId[0]=1234
(/itemId.\d+..\d{4}/)
的RegEx,但我完全不知道如何获取内容的名称。有什么建议?也许我可以通过HTML解析Ruby?
答案 0 :(得分:0)
给出这样的字符串:
s= "\n \n \n \n itemId[0]=1234;\n \n \n \n \n \n \n \n My Project: First Edition\n \n "
你可以这样做:
m = s.match(/(itemId\[\d+\]=\d+);(.*)/m)
item = m[1]
# itemId[0]=1234
name = m[2].strip
# My Project: First Edition
基本上,您使用(或多或少)或现有表达式拉出itemId...
部分,以多行模式((.*)
)抓取字符串的其余部分(/m
),这样.
匹配换行符),然后使用strip
删除正则表达式之外的有问题的空格。您不必构建一个无法读取的正则表达式,它可以执行您需要的所有内容,允许对匹配结果进行后处理,有时甚至可以鼓励。
答案 1 :(得分:0)
我建议您使用split
查找所有非空行。
str.split(/\s*\n\s*/)
应该这样做。