如何在Sublime Text 2中使用正则表达式替换括号之间的大写字母?

时间:2014-09-20 17:33:42

标签: regex replace sublimetext2

我需要编辑一个包含数百个条目的bibtex数据库。实际上我需要做的是替换键或括号之间的大写字母,例如:{A}。我有成千上万的。我的第一个想法是使用{{搜索Ctrl + D个事件,但这限制了我的搜索仅限于初始事件,而另一个仍然存在。

我的想法是替换{#}(其中#是外卡字符,我用来抽象地表示任何字母),仅用于#;但由于#可能是字母表中的任何字母,我无法使用Ctrl + D这么简单。我知道正则表达式(实际上我知道它们存在,但不知道它们是如何使用的,我从未使用过)。我一直在寻找有关Sublime Text 2的信息,但我找不到足够的基础知识。

有人可以解释我该怎么做,或者向我展示一些有关新手正则表达式的有用解释吗?

2 个答案:

答案 0 :(得分:2)

使用 Ctrl + H 打开搜索和替换,启用正则表达式

如果大写字母之间只有一个大写字母的实例,并且您希望删除大括号。

Find What: \{[A-Z]\}
Replace With: 
              ^^ Replace with Empty String

如果您只想用不同的值或空字符串替换大写字母,请保留大括号。

Find What: (?<=\{)[A-Z](?=\})
Replace With: 
              ^^ Replace with Empty String or value of choice

如果您想保留大写字母但仅删除大括号:

Find What: \{([A-Z])\}
Replace With: \1

答案 1 :(得分:1)

使用以下正则表达式匹配{}中存在的所有大写字母。将匹配的字符替换为您想要的字符串。

[A-Z](?=[^{}]*})

DEMO

在Sublime文本2中,选择Find->Replace以通过正则表达式进行替换。