捕获特定字符之间的字符串

时间:2013-07-09 11:54:38

标签: ruby regex

有人可以帮我提取字符串:

Advice about something

从下面:

<TITLE>Advice about something</TITLE>

表达式应该能够捕获<TITLE></TITLE>之间的字符串。我尝试过诸如[^TITLE<g\/]之类的表达式,但无法获得正确的输出。

3 个答案:

答案 0 :(得分:5)

如果您想要一个强大的解决方案而不是时间黑客,那么请使用特定的解析器。

require "cgi"
require "nokogiri"
Nokogiri.parse(CGI.unescapeHTML(
  "<TITLE>Advice about something</TITLE>"
))
.xpath("TITLE").text
# => "Advice about something"

答案 1 :(得分:1)

左侧部分<TITLE>和右侧部分</TITLE>并将(.*?)放在两者之间:
<TITLE>(.*?)<\/TITLE>

Online demo

答案 2 :(得分:0)

取决于。字符串是否始终由半列分隔?

tmp = "<TITLE>Advice about something</TITLE>"
=> "<TITLE>Advice about something</TITLE>" 

tmp.split(';')[2].gsub(/\&lt/, "")
=> "Advice about something"