正则表达式删除一些开头和结尾的文本。如(::寺:: Utils.escape_html)

时间:2016-05-04 14:12:39

标签: ruby-on-rails regex

在Rails中,我将slim转换为erb,得到了太多无用的文本

<tr class="highlight">
    <td><%= ::Temple::Utils.escape_html((cloud_file.name)) %>
    </td><td>
    <div class="input-append">
        <%= ::Temple::Utils.escape_html((text_field_tag '', cloud_file.asset.url, :class => :span4)) %>
        <%= ::Temple::Utils.escape_html((link_to 'check', cloud_file.asset.url, :target => :_blank, :class => :btn)) %>
    </div></td><td><%= ::Temple::Utils.escape_html((number_to_human_size(cloud_file.file_size))) %>
</td><td><%= ::Temple::Utils.escape_html((cloud_file.content_type)) %>
</td><td>
<%= ::Temple::Utils.escape_html((admin_delete_button(cloud_file))) %>
</td></tr>
::Temple::Utils.escape_html((cloud_file.content_type))
::Temple::Utils.escape_html((l))

我只想删除::Temple::Utils.escape_html((...))并将文字保留在括号((...))之间。例如( “cloud_file.name”)

这是我的正则表达式,不行。

::Temple::Utils.escape_html\({2}(?<=[^.*])\){2}

怎么修好了? THX

1 个答案:

答案 0 :(得分:1)

我建议:

gsub(/::Temple::Utils\.escape_html\({2}(.*?)\){2}/m, '\1')

请参阅IDEONE demoregex demo

您使用了lookbehind (?<=[^.*])而不是消费子模式.*?。您可以调整模式和替换模式以包括一组括号或在捕获组#1的两端添加引号(使用(...)捕获的部分)。