
我有 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
嘗試文字板。您可以錄製巨集然後回放它們。因此,記錄下您想要對第一行執行的操作,完成第一行後,將遊標保留在下一行的開頭。然後播放巨集直到文件末尾。或只需按住播放巨集鍵。
答案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++裡面已經有一些東西了。
- 打開替換視窗
- 在“查找”欄位中輸入“^”,後面跟著一個空格或您想要查找的任何內容,
這將僅搜尋行開頭的任何內容 - 將您需要的任何內容放入替換為欄位中
- 將搜尋模式設定為“正規表示式”
- 點擊全部替換
- 完畢