2015-02-06 64 views
4

我試圖做一個崇高的正則表達式搜索並用反向引用進行替換。這是我的數據集:使用正則表達式崇高的錯誤

if(requestType.endsWith("CompleteMulti")) { 
if(requestType.endsWith("CompletePartial")) { 
if(requestType.endsWith("Unfulfillable")) { 

當我運行正則表達式:

^.+"(\w+)".+$ 

與REPLACE語句:

$1 

我得到以下輸出:

completemuLti 
completepaRtial 
unfulfillaBle 

正如你所看到的那樣tters全部扭曲。 我正在使用版本2.0.2,內部版本2221

這是已知問題嗎?一些谷歌搜索沒有發現任何數據。如果有人知道它的解決方法,請讓我知道。

+2

在崇高3(建立3065),它按預期工作,在不改變的情況下。所以看起來像一個錯誤。 – streetturtle 2015-02-06 16:25:19

+0

我使用ST2在Ubuntu 14.10,OS X 10.8.5和Windows 8上測試了它,它對我來說都適用於所有三種。你確定'Replace'字段中沒有其他內容嗎? – MattDMo 2015-02-06 19:41:26

+0

如果在替換文本時選擇「保留大小寫」選項,我可以在內部版本3065上重現此操作,因爲它保留了之前出現的字符的大小寫..不是錯誤! :) – msturdy 2015-02-06 20:00:58

回答

4

執行你之前「全部替換」,取消選擇該選項「保留案」(ALT + 一個

「保留案」將保留那是在那個位置之前的字符的情況下,。快速演示:

if(requestType.endsWith("CompleteMulti")) { 
if(requestType.endsWith("CompletePartial")) { 
if(requestType.endsWith("Unfulfillable")) { 
completemuLti 
completepaRtial 
unfulfillaBle 

     ^only this character is left in upper case 

另一個例子。這一次,我們將取代「崇高」與「香蕉」,使用不區分大小寫的正則表達式,並以「保留大小寫」選擇:

前:

SUblime 
suBLime 
sublIME 

後:

BAnanas 
baNAnas 
banaNAS 

響應以IcedD​​ante的評論,我可以想到一個用例,它將是所需的行爲(儘管可能會有所設想)..想象一下您將發送給多所大學的一封信:

Blahtown親愛的大學,

我寫信,詢問你的應用生物學101當然,我明白 你在生物學領域領先的學校。我有 一直對生物研究領域有着濃厚的興趣,因此 這門課程,應用生物學101特別感興趣。

,然後你也想打聽地理課程,你可以查找/替換 「BIOLOG」 與 「geograph」,維護的情況下:

Blahtown親愛的大學,

我正在寫信詢問你的Applied Geography 101課程,因爲我知道你是地理領域的領先學校。I 一直對地理研究領域 有着濃厚的興趣,所以這門課程Applied Geography 101特別引人關注。

很有意思,我知道。

說明 - 我試着尋找文檔中此引用,但我找不到任何明確的...

+0

謝謝mrsturdy – IcedDante 2015-02-06 20:22:22

+1

@IcedD​​ante這不是一個很好的例子,誠然!也許你在沒有意識到的情況下擊中ALT + A? – msturdy 2015-02-06 20:40:32

+1

啊,我明白你在這裏做什麼了。有些時候我正在使用代碼來處理我想要修改的大寫和小寫字詞。例如,類名稱ShipDialog和它的實例shipDialog,我想更改爲返回。我認爲這會派上用場。 – IcedDante 2015-02-07 16:51:23