2016-05-11 29 views
0

內如圖所示,與一個以上的開口雙引號()幾乎每一個線內發生的,如下所示:正則表達式:如何找到兩個重複「炭我有數百行的線

... 「 ... 「 ..... 「 ..... 

note:上面的那些點(...)表示爲了說明的目的在這個上下文中的兩個詞&。

  1. 如何在每行內搜索(通過正則表達式)每一個這樣的事件?我試圖實現這一目標:

    「.*「「.* 「

    卻是令人失望的返回即使是那些誰是正確的,即,既開&用雙引號也(這是正確的做法應該是)如下:

    ... 「 ...」 ..... 「 .....」 ...... 「 .....

  2. 對於每一個第二[space]「每遇到線內重複如何取代他們(通過正則表達式)爲」 [space]

+0

@muhammad shahzad感謝您對代碼bro的改進。 –

回答

0

的使用[^」]*代替.*,所以它會搜索兩個開放的報價都occurence與任何字符序列之間除了關閉qoute的

編輯:

「[^」]*?「 - 小姐,它會找到兩個打開引號(OQ)儘可能之間最大srting,在「some text 「more text 「text會發現「some text 「more text 「,所以你*後需要?


而作爲您的圖片,使用的是崇高的,所以用\1」

  • ()捕獲一組,您可以與\n,其中n是組號後訪問替換(「[^」]*?)\s「
  • *?惰性表達式,停止在下一個字符的第一次出現(\s這裏)
  • \s任何空白字符(空格,製表,換行等)
  • \1第一捕獲基團,在這裏 - 開口報價和一些文字

它是可以使用的外觀背後(?<=text),但它的長度必須是已知的,在你的exampole其長度是未知(因爲*)。

+0

非常感謝你!你的解決方案工作非常出色,它返回了2190條符合這個標準的行。現在,有沒有辦法在第二個問題中提出替代方案?例如,[this picture](https://i.snag.gy/LEUvx6.jpg)就是它返回結果的一個例子;在所有這些匹配中,我應該輸入哪個RegEx命令來替換**每個備用空間,然後打開雙引號char ** i。例如'[space]「'作爲[this](https://i.snag.gy/J6An89.jpg)寫入''[space]',這是一個結尾雙引號,後跟空格**? –

+0

爲第二部分添加了答案。 – TEXHIK

+0

引用你❝,用'\ 1「替換'(」[^「] *?)\ s」'❞ - 結束引用。 它將替換整個匹配字符串[例如,如此處所示](https://i.snag.gy/xk1sdj.jpg)完全空白爲[this](https://i.snag.gy/g0Kfod .jpg),而不是用我的問題中解釋的(1)關閉引用和(2)空格替換它。我哪裏做錯了? –

0

如果搜索s/(「.*?)(「)/,你可以取代的每秒發生到通過r/(「.*?)(「)/$1」/g

.*?作爲一個懶惰的運營商將使它就停在第二次出現。

+0

感謝您的建議。但是,它不起作用。相反,他在下面給出的TEXHNIK解決方案的工作。 –

+0

**更新**:由於我在Sublime Text上工作,因此您的代碼(如您所提供的)無效(可能適用於vim)。但是,在將它們改爲「(」。*?)(「)'後,我才意識到它正在工作! Yuppy。此外,將替換解決方案更改爲簡單的「$ 1」工作方式,但會在結尾處留下一個空格,如下所示:'[space]「'。我在替換代碼中需要的是它應該在結束引號之後自動移動空格,如下所示:''[space]'。有沒有辦法通過RegEx來實現? –

+0

是的,只需在替換字段上輸入即可 –