Notepad++ 嘗試只在每行的第一個空格之後新增一個字符

Notepad++ 嘗試只在每行的第一個空格之後新增一個字符

我有 30,000 行文本,其中有隨機數量的空格。我需要在每行的第一個空格中添加一個字元。任何能提出任何建議的人將不勝感激。

答案1

  • Ctrl+H
  • 找什麼:^\S+\h\K
  • 用。%
  • 檢查環繞
  • 檢查正規表示式
  • Replace all

解釋:

^           # beginning of line
  \S+       # 1 or more non space
  \h        # 1 horizontal space
  \K        # forget all we've seen until this position

替代品:

%           # the character to insert

鑑於:

I have 30,000 lines of text that have randon 
number of spaces in them. I need to add a character 
to just the first SPACE in each line. 
Any who can suggest anything would be 
greatly appreciated.

給定範例的結果:

I %have 30,000 lines of text that have randon 
number %of spaces in them. I need to add a character 
to %just the first SPACE in each line. 
Any %who can suggest anything would be 
greatly %appreciated.

在此輸入影像描述

答案2

嘗試文字板。您可以錄製巨集然後回放它們。因此,記錄下您想要對第一行執行的操作,完成第一行後,將遊標保留在下一行的開頭。然後播放巨集直到文件末尾。或只需按住播放巨集鍵。

https://www.textpad.com/

答案3

您正在尋找的是正規表示式。您要做的第一件事是將搜尋轉換為正規表示式

在此輸入影像描述

很高興因為我想我確切地知道如何解決這個問題

https://regex101.com/r/aW4gG2/1

您想要的表達式是:
尋找:(^.*?)( )
取代:\1#\2

其工作方式如下,在正規表示式中表示()「捕獲」。這意味著它將找到這個高度特定的群組,然後您可以在替換中使用 \1 或 \2 或 \3 來引用它。數字從 1 開始,從左括號開始計數

^意思是從行首開始。 (因為您希望插入內容涵蓋第一個空間,這就是我們從前面開始尋找的第一個空間)

.*?這部分查找空格前面的第一個單字。它透過在一組中使任意字元 ( .) 盡可能多 ( *) 但必需的最少來實現此目的?。如果沒有問號,您將只捕獲每個字元(包括所有空格)

( )這部分意味著我們的第二組是第一組之後的空間。這應該是第一個空間。這就是我們想要插入的角色。

替換

\1#\2

\1指第一個字符集。表達式中的表示*字元集可以是任意長度的單字,包括 0。

#是插入字符

\2\當然是空間。

結果是#在每個第一個空格前面放置一個。如果你想在第一個空格之後使用它,就像調整替換一樣簡單

\1\2#將在每行的每個第一個空格之後放置#


這就是正規表示式的力量。簡單的查找和替換可以比任何巨集更精確地執行插入。它很靈活,速度很快,而且大多數時候並不那麼難。

這是一個很棒的入門教程,應該解釋什麼是 RegEx 以及為什麼它有用。 [正規表示式]。 REO 讓我明白了

這是一個很多人推薦的教程,說實話我不太懂。 [正規表示式訊息]

事實上我從來沒有回到過 RegEx.info 我直接跳進去了記事本++文檔這實際上在這一點上非常有幫助。當然,您可以使用 [ 進行測試正規表示式101]。您唯一要做的就是/gm在表達式中加入 the 。然後,您可以將一個片段貼到 TestString 中並進行練習,直到正確為止。

在此輸入影像描述

答案4

有一個非常簡單的解決方案。

我記得Notepad++裡面已經有一些東西了。

  • 打開替換視窗
  • 在“查找”欄位中輸入“^”,後面跟著一個空格或您想要查找的任何內容,
    這將僅搜尋行開頭的任何內容
  • 將您需要的任何內容放入替換為欄位中
  • 將搜尋模式設定為“正規表示式”
  • 點擊全部替換
  • 完畢

了解更多信息

相關內容