1

是否可以创建一个正则表达式以在 Komodo Edit 中将 < 和 > 替换为它们的实体等价物?

s/<|>/&lt;|&gt;/
4

6 回答 6

2

我猜你可能需要转换&&amp;等等。

如果是这种情况,则很可能存在您使用的任何语言/平台的库或函数(例如,在 Java 中查看StringEscapeUtils)。指出您使用的语言,这里的某个人无疑会为您指出合适的内容。

于 2009-09-29T23:24:59.467 回答
1

在不使用正则表达式的情况下,几乎可以用任何语言轻松做到这一点:

PHP:

$xml = str_replace(array('>', '<'), array('&gt;','&lt;'), $xml);

Python:

xml = xml.replace('>', '&gt;').replace('<','&lt;');

等等

于 2009-09-29T23:39:26.597 回答
0

这取决于您使用的语言。在 Perl 中,你可以这样做:

s/([<>])/$1 eq '<' ? '&lt;' : '&gt;'/ge

其他语言通常允许您提供返回替换字符串的匹配回调函数。也就是说:在 C# 中,您可以这样做:

Regex.Replace("<", "([<>])", x => x.Value == "<" ? "&lt;" : "&gt;")
于 2009-09-29T23:22:03.403 回答
0

您可以使用哈希变量,例如:

my %data;
$data{"<"} = '&lt;';
$data{">"} = '&gt;';
s/(<|>)/$data{$1}/g;
于 2009-09-29T23:31:31.217 回答
0

感谢大家。我一直在寻找可以在Komodo Edit中使用的东西,所以变量和条件语句不是一个选项。这是我找到的最佳解决方案,它基于IBM Developerworks的 Sed 教程:

s/<([^>]*)>([^<]*)<([^>]*)>/&lt;\1&gt;\2&lt;\3&gt;/
于 2009-10-13T22:34:57.473 回答
0

Komodo Edit 5.x中,使用moreKomodo扩展来保存以下查找/替换正则表达式搜索

寻找:

<([^>]*)>([^<]*)<([^>]*)>

代替:

&lt;\1&gt;\2&lt;\3&gt;
于 2013-07-12T19:32:30.807 回答