2013-10-19 47 views
0

多個項目,所以我有一組語句,如複製使用正則表達式

if      {return IF;} 
    int      {return INT;} 
    for      {return FOR;} 

的,我希望它它讀起來就像

if      {return IF;}  IF 
    int      {return INT;}  INT 
    for      {return FOR;}  FOR 

這是因爲我需要複製所有這些變量到代碼的另一部分,如果頁面被格式化,我可以做一個簡單的文本塊。

我認爲最簡單的方法是使用查找/替換正則表達式。然而,雖然通過說[return。*}]來選擇我想要的東西很容易,但我似乎無法弄清楚我將如何將它移到其他地方。

謝謝你的幫助!

+0

描述有點不清楚 - 你能告訴我們這是哪種語言,這些空間是什麼意思?你想一次替換所有的語句嗎? –

回答

1

你可能想看一眼Structural Replace訪問Ctrl + Shift + M。它是一個存在於核心發行版中的插件,但可能在某些安裝中被禁用。

一個更簡單,能力較差的選項是Idea的搜索中的正則表達式替換&取代back-referencing,其中涵蓋了here

0

你需要的是這個叫做「匹配組」的漂亮東西。您可以在查找表達式中使用圓括號,然後您可以使用數字組引用引用「替換」中的這些組。 \ 1指第一組,第二組,第二,等等。以此爲例,下面是一個例子:

s/\(.*return \)\(.*\)\(;.*\)/\1\2\3  \2/ 

在vi中有效。注意查找表達式中的每個括號之前的\。這很醜陋,但你需要。否則,它會被解釋爲你試圖匹配括號。當然,在vi中,你可以在查找/替換前面放一個%來同時應用到所有行。

非常重要。編輯器有時可以配置爲將行尾字符包含在「。」中。火柴。爲了這個工作,你必須要麼禁用,要麼替換「。」。表達式與行尾字符不匹配。我認爲[\ s \ S]會起作用。

另一個細節。如果你希望他們很好,並排隊,你可以在那裏,而不是隻是在替換表達式中輸入一堆空格,你可以放置一對固定位置的選項卡。