Ruby Regex:匹配<没有匹配的>

时间:2013-06-06 14:23:10

标签: ruby regex

给出以下XML

<Comment>10 < 100</Comment>

我希望能够正确识别内部<以便能够将其删除,但我希望保留所有其他内容。

我假设这将涉及某种[?]选项,但我还没有设法弄清楚试验rubular

注意:我们使用的是XML解析器rexml,但它在上面的场景中会窒息。相反,Nokogiri在内容中扼杀了&符号。

1 个答案:

答案 0 :(得分:3)

查找并转换<之后未跟>

result = subject.gsub(/<(?![^<>]*>)/, '&lt;')
<        # Match a <
(?!      # only if the following regex can't match here:
 [^<>]*  # any number of characters except angle brackets
 >       # followed by a closing angle bracket.
)        # (End of negative lookahead assertion)

<强>解释

{{1}}