2013-09-23 95 views
0


即時通訊使用Jedit和正則表達式替換文件中的幾個代碼中的一些文本。正則表達式與完整文本

有很多相似的開始和結束,如:

Something 
Text Sample 
Something Else 

或者

Something 
I dont know what else 
Something Else 

然後我搜索使用:

Something 
[^‰\r\n]* 
Something Else 

而且我要全部更換與:

Something 
<Tuv Lang="EN-US">**ORIGINAL TEXT**</Tuv><Tuv Lang="PT-BR"> </Tuv> 
Something Else 

所以它會在開始和中間文本行的末尾添加一些代碼,這些代碼並不總是相等的。

我已經嘗試使用:

Something 
<Tuv Lang="EN-US">[^‰\r\n]*</Tuv><Tuv Lang="PT-BR"> </Tuv> 
Something Else 

但沒有成功。有人可以告訴我應該如何使用正確的正則表達式?

在此先感謝!

馬蒂亞斯

回答

0

嘗試修改您的搜索:

Something 
([^‰\r\n]*) 
Something Else 

這應該「捕獲」什麼是括號內並將其存儲在一個變量,$1

然後,嘗試這種替換:

Something 
<Tuv Lang="EN-US">$1</Tuv><Tuv Lang="PT-BR"> </Tuv> 
Something Else 

我不能說這是否會工作,我的jEdit與否,因爲我沒有堅持到底。

+0

非常感謝傑裏!!!!! :D:D 它的作品像一個魅力:D – user2809038

+0

@ user2809038太棒了!你能否將我的答案標記爲已接受? ^^ – Jerry

0

搜索:

Something(\s*)(.*?)(\s*)Something Else 

替換:

Something$1<Tuv Lang="EN-US">$2</Tuv><Tuv Lang="PT-BR"> </Tuv>$3Something Else 

這抓住了換行符(S)以及包裝的文本,並把它全部回到正確的位置,這意味着,無論換行字符都存在保存。

live demo見正則表達式匹配的樣品輸入的

+0

請注意['?'non-greedy modifier](http://www.regular-expressions.info/repeat.html),這對於兩個塊位於單個文件中時非常重要。 –

+0

我已經測試過它,但它不起作用。它被替換,但沒有文字/文字(你增加2美元)。無論如何,謝謝你們的答案!順便說一句,我會看看你發送的實時演示頁面,它看起來不錯! – user2809038

+0

嘗試在替換文本中使用'\ 1'而不是'$ 1'等。沒有後向引用的標準 - 您的工具可能是反斜槓類型 – Bohemian