Notepad++ - 如何搜尋(每行)直到某個字元(在該行中)?

Notepad++ - 如何搜尋(每行)直到某個字元(在該行中)?

我有幾行看起來像

\node[ ... Some code here ... { ... some more code
\node[ ... Some code here ... { ... some more code
\node[ ... Some code here ... { ... some more code

在每一行中,我想用我自己的程式碼替換從[到 的程式碼。{

  • \node始終位於每行的開頭。

  • {不是在線的末尾。

我已經找到(在這裡)並嘗試了類似^\\node.*\{or的東西,但是兩者都產生了相同的令人不滿意的結果:整個程式碼直到文件中的\\node.*\{最後一個都被標記。{

答案1

實際上,啟用 Wrap around 就完全沒問題了。事實上,我建議你這樣做。

由於片段保證位於行的開頭,因此您可以使用脫字號 ( ^) 錨點。

以下對我有用:

尋找:^\\node\[[^{]*\{;用。\\node[test{

錨點^到行首。轉義特殊字元後\\node\[匹配文字。抓取除左大括號之外的所有字元。 (請注意,此處不需要轉義,因為它位於字元類別中。)然後取得左大括號本身。\node[[^{]*{\{


如果 ... Some code here ... 可以包含大括號:

尋找:^\\node\[.*\{([^{]*)$;用。\\node[test{$1

第一部分是相同的。然後,.*將匹配盡可能多的字元。\{匹配左大括號,然後([^{]*)$匹配並捕獲所有字符,直到行尾。既然[^{]指定了,那麼它將不匹配任何左大括號,因此前一個\{必須匹配{行中的最後一個。

答案2

在「搜尋/取代」對話方塊中,使用「尋找內容」:節點[。並替換為:節點[測試{成功替換...這裡有一些代碼...測試在每一行上。

您必須指定以下選項:

  • 不要勾選“環繞”
  • 勾選“正規表示式”
  • 不要勾選“.匹配換行符” 在此輸入影像描述

相關內容