2014-09-20 20 views
1

我需要編輯一個有數百個條目的bibtex數據庫。事實上,我需要做的是替換鍵或括號之間的大寫字母,如:{A}。我有成千上萬的人。我的第一個想法是搜索{{Ctrl + D發生率,但這限制我的搜索只到最初的發病率,其他依然存在。如何在Sublime Text 2中使用正則表達式替換括號中的大寫字母?

我的想法是,以取代{#}(其中#是一個通配符人物,我用它來抽象地任何字母),只是爲#;但是因爲#可以是字母表中的任何字母,所以我不能使用Ctrl + D這麼簡單。我知道正則表達式(其實我知道它們存在,但不知道它們是如何使用的,我從來沒有使用過)。我正在尋找有關Sublime Text 2的信息,但我沒有發現任何基本的東西。

有人能解釋我該怎麼做,或者給我看一些有用的新手正則表達式的解釋嗎?

+1

投入和預期產出會更好。 – 2014-09-20 17:38:53

+0

@AvinashRaj對不起,我不明白你的意見。 – Aradnix 2014-09-20 18:38:31

+0

是否要在「{}」或「{{}}」中替換大寫字母?這個'Foo {FooFGbb}'字符串的預期輸出是什麼? – 2014-09-20 18:41:50

回答

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 
+0

不,實際上我需要在大括號內保留大寫字母,但沒有大括號。 – Aradnix 2014-09-20 19:24:54

+1

@Aradnix參見上次編輯。 – hwnd 2014-09-20 19:27:29

+0

嗯,我嘗試做,但我不知道什麼是錯的:我按下Ctrl + H打開**搜索和替換**部分,有啓用:_Regular Expression,區分大小寫,全字,反轉方向,自動換行「和」高亮匹配「。所以我複製你最後的建議,但Sublime Text 2什麼都不做。怎麼了? – Aradnix 2014-09-20 19:39:28

1

使用正則表達式如下匹配所有的大寫字母是存在的{}內。用你想要的字符串替換匹配的字符。

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

DEMO

在崇高的文本2選擇Find->Replace通過正則表達式做了更換。

+0

感謝您的演示。 – Aradnix 2014-09-20 19:56:31

相關問題