2013-10-31 74 views
0

我有這樣正則表達式不同的行爲

"text1 
"text2 
"text3 

,我需要轉換爲引用的文字,我能夠像這樣

Find: ^\".*$ 
replace: $0" 
計算器幫忙做一組單詞

有另一套的話這樣

text1 
text2 
text3 

我需要轉換爲1頁引用的文字,我能夠做

Find: ^(.+)$ 
Replace: "$0" 

但在這種情況下,我能只通過單擊全部替換,而不是取代去做。

任何人都可以告訴它爲什麼會發生這樣的事情嗎?我怎樣才能實現這一點,而不使用全部替換和只使用替換?

+0

請在這裏留下您的意見和解答。我只能在幾個小時後回覆 – karthick

+1

您匹配一條線,因爲您有多條線,您必須對所有線應用正則表達式:全部替換。 – Tyco

+0

@karthick:首先,您提出問題的重點是我們可以發表評論作爲答案。你不需要告訴我們這樣做。其次,在Stack Overflow這樣的網站上,這是一個令人難以置信的不好的想法™,可以發佈一個問題,並在接下來的幾個小時內消失。如果您的問題無法回答,並且您無法回覆其他成員的意見,請不要驚訝,當您回來發現它已關閉,或者更糟糕時,沒有任何迴應。 – BoltClock

回答

0

在第一種情況下,您只能使用「替換」一次!你必須按下它3次(與你的比賽一樣多)。

在這兩種情況下,您都需要「全部替換」,因爲您需要多個全局匹配項。當按下「全部替換」按鈕時,就像使用Perl's/g & /m修飾符在您的替換中,您可以試驗here來查看我的意思。

順便說一句,在第二個例子中使用捕獲組(括號)是多餘的,使用find:^.+$並替換:"$0"

+0

不需要。對於第一個,我只需按一下替換。你可以試試。我正在使用Notepad ++ v 6.2.2 – karthick

+0

我嘗試了:)可能是對你/我的意思有什麼誤解。 – psxls

1

照顧第二個替換,它將替換"text1"""text1""

使用這個代替:

find what: ^[^"\n]+$ 
replace: "$0" 
1

應該用全部替換,並在任何情況下不得更換合作。該功能還可能受光標位置和查找/替換方向的影響。要確定,您可以將光標放在文件的開頭,確保查找方向爲「向下」並使用「全部替換」。

現在到正則表達式,是的,你可以在一個替換。使用此發現:

^(?:")?(.*)$ 

而且這代替:

"$1" 

regex101 demo

(?:")?將消耗第一個雙引號(如果存在),以便稍後將其置於替換中。