2013-07-05 56 views
0

我經常需要在TextMate中切換兩個值。在TextMate2中使用Search&Replace切換兩個值?

原始文本:

@person = company.person 

所需文本:

@company = person.company 

什麼做到這一點使用搜索&更換最簡單的方法?

謝謝。

+0

加成:[@](.*) ?= ?(manager||resources)\.\1

替換爲一個簡單(但有點乏味)的方法是用「xxx」替換「person」,然後用「person」替換「company」,然後用「company」替換「xxx」。 –

回答

1

你可以做一個簡單的字符串搜索和替換;這是

搜索:@company = person.company

如果你想(對任何AB@A = B.A@B = A.B)做一些稍微更一般的話,我會變成:@person = company.person

與更換到正則表達式:

搜索:[@](.*) ?= ?(.*)\.\1

替換:@$2 = $1.$2

這將交換所有對的形式的@A = B.A@B = A.B(無論間距的=左右)。確保在「查找&替換」窗口中勾選正則表達式框。

如果你只想要切換與@person@company,而不是別的什麼開始任何對,那麼下面將做到這一點:

搜索:[@](person||company) ?= ?(.*)\.\1

替換爲:@$2 = $1.$2

使用正則表達式「或」運算符,||添加更多術語。你可以爲第二個值做同樣的事情。例如,如果你想只匹配的項目,如manager.resources.,那麼你會使用:

搜索:@$2 = $1.$2

+0

謝謝,這是非常具有說服力的。儘管如此,這對我來說似乎有點困難。它看起來並不比我的「老方法」容易(用xxx代替人,用人代替公司,用公司代替xxx)。正則表達式令人難以置信的強大,但他們肯定不容易學習。 –