首页 > 解决方案 > 应该包含括号的正则表达式会在 Sublime Text 中排除它们

问题描述

我使用两种不同的在线工具测试了以下正则表达式:

\<(.*?)\>

在两者中它们产生相同的结果,即匹配<any text within brackets>包括括号。这就是我要的。

但是在 Sublime Text 中结果是不同的。它只匹配 < any text within brackets>。括号除外。

这是我一直在测试的一些示例文本:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Text for testing regex -->
<data type="lorem">
<h3>Improving the lorem in your ipsum</h3>
</data>
<data type="image" number="1"/>
<data type="ipsum">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.
</data>

这是 Sublime Text 的错误,还是可以修改正则表达式以在 Sublime Text 中包含括号?

谢谢。

标签: regexsublimetext3

解决方案


在 sublime 使用的正则表达式类型中,如果没有转义,则<and>字符将被视为文字。所以你正在寻找的正则表达式是<(.*?)>.

转义<具有特殊含义,即“单词的开头”。转义>词和词尾也是如此。您可以使用正则表达式\<dvsd和您提供的示例进行崇高尝试。


推荐阅读