2017-05-05 54 views
0

我想,以取代記事本+ +以下內容內支架更換內容與給定內容的記事本++

{\abc {a}}, {\abc {c}}, {\def {a}} 
{\agh {a}}, {\abc {c}}, {\def {a}} 
{\def {a}} {\abc {a}}, {\abc {c}} 

使得結果如下:

{\def {a}} 
{\def {a}} 
{\def {a}} 

我知道里面怎麼替換所有內容支架與\{.*\}在常規模式下,但我不知道如何替換給定的內容。在這種情況下,通常是「\ abc」或「\ a *」。 我們是否有過濾相似字符的最佳方法,例如{\ abc {a}},{\ agh {a}},{\ abc {c}}具有相同的部分「{\ a」並且只保留與以上? 請幫我解決這個問題。 謝謝!

+0

做表達式匹配匹配嗎?或者在它們中有'\ def'的制動器?每一件事都在一條線上嗎?請添加一些預期結果的測試用例。 – Toto

+0

我剛編輯我的問題。謝謝 – greenworld

+0

因此,您只想從字面上保留'{\ def {a}}'並刪除其他所有內容?如果某行不包含「{\ def {a}}」,例如:{\ abc {a}},{\ abc {c}}'?你想刪除整行包括換行符或保持換行嗎?它實際上是'\ def'和'a'還是可以是'\ dab'或\ dxyz''? – Toto

回答

0

你可以嘗試\{\\a[^{]*\{[^{]*\}\},如果你有始終爲1級嵌套的括號

只是兩點:

  • 要與任何內容使用\{[^{]*\{[^{]*\}\}代替\{.*\}更換支架,否則整個表達式{\abc {a}}, {\abc {c}}, {\def {a}}會比賽。
  • \abc\a*與像\\a\aaaaaaaa

檢查https://en.wikipedia.org/wiki/Regular_expression瞭解更多信息要保持百達最後括號

+0

謝謝,但在這種情況下,{\ abc},{\ aaa},{\ aac},{\ def} 這是最好的方法只保留{\ def} – greenworld

+0

我剛編輯我的問題,請幫助我解決! – greenworld

+0

我編輯過,但你應該嘗試理解語法以便能夠自己做 – Matt