用于尖括号条件替换的正则表达式

发布于 2024-08-06 08:19:06 字数 104 浏览 14 评论 0原文

是否可以创建一个正则表达式来替换 <和>与科莫多编辑中的实体等效项?

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

Is it possible to create a single regexp to replace < and > with their entity equivalents in Komodo Edit?

s/<|>/<|>/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

萌酱 2024-08-13 08:19:06

我猜您可能必须将 & 转换为 & 等等。

如果是这种情况,那么无论您使用哪种语言/平台,很可能都有一个库或函数(例如,在 Java 中,请查看 StringEscapeUtils)。表明您正在使用哪种语言,这里的人无疑会为您指出合适的语言。

I'm guessing that you may have to convert & to & and so on.

If this is the case there's most likely a library or function in whichever language/platform you're using (e.g. in Java check out StringEscapeUtils). Indicate which language you're using and someone here will no doubt point you to something appropriate.

大姐,你呐 2024-08-13 08:19:06

在几乎任何语言中都可以轻松执行此操作,无需使用正则表达式:

PHP:

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

Python:

xml = xml.replace('>', '>').replace('<','<');

等。

It is easy in to do this in just about any language without using regex:

PHP:

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

Python:

xml = xml.replace('>', '>').replace('<','<');

etc.

2024-08-13 08:19:06

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

my %data;
$data{"<"} = '<';
$data{">"} = '>';
s/(<|>)/$data{$1}/g;

You could use a hash-variable, something like:

my %data;
$data{"<"} = '<';
$data{">"} = '>';
s/(<|>)/$data{$1}/g;
咋地 2024-08-13 08:19:06

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

s/([<>])/$1 eq '<' ? '<' : '>'/ge

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

Regex.Replace("<", "([<>])", x => x.Value == "<" ? "<" : ">")

It depends on the language you are using. In Perl, you could do:

s/([<>])/$1 eq '<' ? '<' : '>'/ge

Other languages usually allow you to provide a match callback function that returns a replacement string. To wit: In C#, you can do this:

Regex.Replace("<", "([<>])", x => x.Value == "<" ? "<" : ">")
唱一曲作罢 2024-08-13 08:19:06

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

s/<([^>]*)>([^<]*)<([^>]*)>/<\1>\2<\3>/

Thanks everyone. I was looking for something I could use in Komodo Edit, so variables and conditional statements were not an option. Here is the best solution I found, which was based on a Sed tutorial at IBM Developerworks:

s/<([^>]*)>([^<]*)<([^>]*)>/<\1>\2<\3>/
芯好空 2024-08-13 08:19:06

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

查找:

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

替换:

<\1>\2<\3>

In Komodo Edit 5.x, use the moreKomodo extension to save the following find/replace regex search:

Find:

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

Replace:

<\1>\2<\3>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文