Ruby on rails 标记之间的正则表达式字符串&书信电报;字符串>&引用;

Ruby on rails 标记之间的正则表达式字符串&书信电报;字符串>&引用;,ruby-on-rails,regex,Ruby On Rails,Regex,我有一个字符串“。 我需要数组格式的标签之间的字符串。 如何获得此结果?此问题的正则表达式非常简单:/ 对于数组部分,请参考上的答案 编辑: 对于标签内部的数组,使用”。扫描(/(?:)*/) (?:…)将标记分组在一起,*表示我们需要该组中的0个或多个:)'.scan(/).map(&:first) 你真的不想用正则表达式解析XML。请使用XML解析器,比如XAML或一些专门的库。但是请,“.”扫描(/)我得到的是数组数组,我只需要字符串数组在这种情况下使用”。扫描(/(?:)*/)的(?:)

我有一个字符串
。 我需要数组格式的标签之间的字符串。
如何获得此结果?

此问题的正则表达式非常简单:
/

对于数组部分,请参考上的答案

编辑: 对于标签内部的数组,使用
”。扫描(/(?:)*/)

(?:…)
将标记分组在一起,
*
表示我们需要该组中的0个或多个:)

'.scan(/).map(&:first)

你真的不想用正则表达式解析XML。请使用XML解析器,比如XAML或一些专门的库。但是请,“.”扫描(/)我得到的是数组数组,我只需要字符串数组在这种情况下使用
”。扫描(/(?:)*/)
的(?:)将标记组合在一起,*表示我们需要该组中的0个或更多:)是解决正则表达式的一种很好的方法,您可以提供一个测试字符串,在编辑正则表达式时可以尝试使用它,这对理解将要发生的事有很大帮助。我发现这个答案很难阅读,请参阅我的答案,了解如何在不使正则表达式本身变得更复杂的情况下执行此操作。您能解释一下您的答案吗?如果正则表达式包含组,则String#scan将返回一个数组数组。在本例中,只有一个组,因此结果数组将为[[“wpf”]、[“xaml”]、[“wpf控件”]。因此,首先通过array#获取每个子数组中的所有字符串。您也可以使用Array#flatte代替,但是如果正则表达式中有多个组,我的解决方案也会起作用。
'<wpf><xaml><wpf-controls>'.scan(/<(.*?)>/).map(&:first)