0

除非出现在 HTML 标记中%{ ... %},否则我需要将所有实例包装起来。例如,这个:<span code='notranslate'>...</span>%{ ... }

"Or %{register_text} for a new account by <a href='%{path}'>clicking here</a>."

需要变成这个

"Or <span code='notranslate'>%{register_text}</span> for a new account by <a href='%{path}'>clicking here</a>."

我当前的正则表达式没有考虑 HTML 标签的情况:

x.gsub(/[?<!]%\{([a-zA-Z0-9_\-]*)\}[?>!]/i) {|s| "<span class='notranslate'>#{s}</span>"}

所以我想知道如何使用正则表达式在 Ruby 中执行此操作。

有接盘侠吗?

4

1 回答 1

0

我不确定输入空间,所以这是我能想到的最好的。在此过程中,我还稍微清理了正则表达式。

/%\{[\w-]+\}(?![^<>]>)/

对于格式良好的 HTML,它只会匹配标记外的标记。如果 HTML 格式不正确,我认为我无法胜任编写正则表达式的任务。

我还假设页面中没有嵌入的 Javascript,因为>Javascript<没有转义。

于 2012-06-08T14:34:21.403 回答