假设我有一个包含html标签的字符串:
<a href="abgeordnete-1128-0----w8397.html" class="small_link">Berlin-Treptow-Köpenick</a>
如何在ruby中使用正则表达式来提取“ Berlin-Treptow-Köpenick”的文本?
谢谢! :)
答案 0 :(得分:2)
您可以使用:
html = '<a href="abgeordnete-1128-0----w8397.html" class="small_link">Berlin-Treptow-Köpenick</a>'
html.match(/>(.*)</)[1]
#=> "Berlin-Treptow-Köpenick"
当你的html部分变得更复杂时,我建议你去查看像nokogiri这样的库。
答案 1 :(得分:2)
我假设要提取的字符串由字母数字字符组成 - 包括重音字母和连字符,并且字符串紧跟字符'>'
的第一个实例。
string =
'<a href="abgeordnete-1128-0----w8397.html" class="small_link">Berlin-Treptow-Köpenick</a>'
r = /
(?<=\>) # match '>' in a positive lookbehind
[\p{Alnum}-]+ # match >= 0 alphameric character and hyphens
/x # extended or free-spacing mode
string[r] #=> "Berlin-Treptow-Köpenick"
请注意,/A-Za-z0-9/
与重音字符不匹配,例如'ö'
。
或者,可以使用POSIX语法:
r = /(?<=\>)[[[:alnum:]]-]+/
答案 2 :(得分:1)
string = '<a href="abgeordnete-1128-0----w8397.html" class="small_link">Berlin-Treptow-Köpenick</a>'
string.scan(/<[a][^>]*>(.+?)<\/[a]>/).flatten