ruby中的正则表达式匹配

ruby中的正则表达式匹配,ruby,Ruby,我有一个字符串数组,如下所示 ["<table class=\"size-table _size-table\">\n<tr class=\"product-size _product-size disabled _disabled\" data-sku=\"3255138\" role=\"option\" aria-disabled=\"true\" aria-label=\"2\">\n<td class=\"size-name _size-name\">

我有一个字符串数组,如下所示

["<table class=\"size-table _size-table\">\n<tr class=\"product-size _product-size disabled _disabled\" data-sku=\"3255138\" role=\"option\" aria-disabled=\"true\" aria-label=\"2\">\n<td class=\"size-name _size-name\">2",
 "\n<td class=\"subscribe\">",
 "\n</tr>\n<tr class=\"product-size _product-size disabled _disabled\" data-sku=\"3255136\" role=\"option\" aria-disabled=\"true\" aria-label=\"3\">\n<td class=\"size-name _size-name\">3",
 "\n<td class=\"subscribe\">",
 "\n</tr>\n<tr class=\"product-size _product-size disabled _disabled\" data-sku=\"3255137\" role=\"option\" aria-disabled=\"true\" aria-label=\"4\">\n<td class=\"size-name _size-name\">4",
 "\n<td class=\"subscribe\">",
 "\n</tr>\n<tr class=\"product-size _product-size disabled _disabled\" data-sku=\"3255135\" role=\"option\" aria-disabled=\"true\" aria-label=\"5\">\n<td class=\"size-name _size-name\">5",
 "\n<td class=\"subscribe\">",
 "\n</tr>\n<tr class=\"product-size _product-size disabled _disabled\" data-sku=\"3255134\" role=\"option\" aria-disabled=\"true\" aria-label=\"6\">\n<td class=\"size-name _size-name\">6",
 "\n<td class=\"subscribe\">",
 "\n</tr>\n<tr class=\"product-size _product-size disabled _disabled\" data-sku=\"3255133\" role=\"option\" aria-disabled=\"true\" aria-label=\"7\">\n<td class=\"size-name _size-name\">7",
 "\n<td class=\"subscribe\">",
 "\n</tr>\n<tr class=\"product-size _product-size disabled _disabled\" data-sku=\"3255132\" role=\"option\" aria-disabled=\"true\" aria-label=\"8\">\n<td class=\"size-name _size-name\">8",
 "\n<td class=\"subscribe\">",
 "\n</tr>\n<tr class=\"product-size _product-size disabled _disabled\" data-sku=\"3255131\" role=\"option\" aria-disabled=\"true\" aria-label=\"9\">\n<td class=\"size-name _size-name\">9",
 "\n<td class=\"subscribe\">",
 "\n</tr>\n</table>\n"]
[“\n\n2”,
“\n”,
“\n\n\n3”,
“\n”,
“\n\n\n4”,
“\n”,
“\n\n\n5”,
“\n”,
“\n\n\n6”,
“\n”,
“\n\n\n7”,
“\n”,
“\n\n\n8”,
“\n”,
“\n\n\n9”,
“\n”,
“\n\n\n”]
我希望内容在aria标签内。这将是上面显示的数字,或者在某些情况下可能是一些值,如S、M、L、XL


因此,我尝试使用ruby中的某种正则表达式来计算每个数组元素并选择aria标签下的内容。但我无法正确地得到它。请提供帮助

虽然有人认为不应使用regexps解析HTML,但在这种特殊情况下,它可能被认为是正常的,因为输入更像字符串,而不是HTML

inp.map { |e| e[/(?<=aria-label=").+?(?=")/] }

#⇒ ["2", nil, "3", nil, "4", nil, "5", nil, "6", 
#     nil, "7", nil, "8", nil, "9", nil, nil]

inp.map{| e | e[/(?您不应该使用regexp来解析html和instead@spickermann:谢谢你的建议,我同意。我发布此问题的主要目的是了解如何使用和使用正则表达式,因此在我指定为正则表达式的问题标题中。谢谢:)太棒了……谢谢@mudasobwa.:)
inp.map { |e| e[/(?<=aria-label=").+?(?=")/] }.compact
#⇒ ["2", "3", "4", "5", "6", "7", "8", "9"]