Ruby 处理Nokogiri/Regex中的特殊字符

Ruby 处理Nokogiri/Regex中的特殊字符,ruby,regex,nokogiri,Ruby,Regex,Nokogiri,我从HTML文档的主体中获取文本,如下所示。当我尝试对术语“Exhibit 99”进行正则表达式扫描时,我得到一个不匹配的数组,即一个空数组。然而,在html中,我确实看到了“Exhibit 99”,尽管inspect元素用 99来显示它。我怎样才能摆脱这些HTML字符并像搜索普通字符串一样搜索“Exhibit 99” url = "https://www.sec.gov/Archives/edgar/data/1467373/000146737316000912/fy16q3plc8-

我从HTML文档的主体中获取文本,如下所示。当我尝试对术语“Exhibit 99”进行正则表达式扫描时,我得到一个不匹配的数组,即一个空数组。然而,在html中,我确实看到了“Exhibit 99”,尽管inspect元素用 99来显示它。我怎样才能摆脱这些HTML字符并像搜索普通字符串一样搜索“Exhibit 99”

url = "https://www.sec.gov/Archives/edgar/data/1467373/000146737316000912/fy16q3plc8-kbody.htm"
doc = Nokogiri::HTML(open(url))
body = doc.css("body").text
body.scan(/exhibit 99/i)
Unicode字符空间 您可以使用:

body.scan(/exhibit\p{Zs}99/i)
从关于Unicode字符的一般类别中:

/\p{Z}/ - 'Separator'
/\p{Zs}/ - 'Separator: Space'
它匹配空格或换行符,但不匹配制表符或换行符。字符串应该用UTF-8编码。有关更多信息,请参见此

非文字字符 更宽松的正则表达式是:

body.scan(/exhibit\W99/i)

这允许在
exhibit
99
之间使用字母、数字或下划线以外的任何字符。它将匹配一个空格、一个nbsp、一个制表符、一个破折号,

这样就行了。你能解释一下那段代码在做什么吗?