使用Ruby中的regex在两个标签之间提取文本

假设我有这个包含html标签的字符串:

Berlin-Treptow-Köpenick 

如何在ruby中使用正则表达式来提取“ Berlin-Treptow-Köpenick ”的文本?

谢谢! 🙂

你可以使用:

 html = 'Berlin-Treptow-Köpenick' html.match(/>(.*) "Berlin-Treptow-Köpenick" 

当你的html部分变得更加复杂时,我建议你去寻找像nokogiri这样的库 。

我假设要提取的字符串由字母数字字符组成 – 包括重音字母和连字符,并且字符串紧跟在字符'>'的第一个实例之后。

 string = 'Berlin-Treptow-Köpenick' 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:]]-]+/ 
 string = 'Berlin-Treptow-Köpenick' string.scan(/<[a][^>]*>(.+?)<\/[a]>/).flatten