Regular replace blank lines: Difference between revisions

From LemonWiki共筆
Jump to navigation Jump to search
(Created page with "使用正規表示法 (Regular expression) 取代文字檔內的空白行 == 狀況1 == <pre> " abc " // 不是空白行 " " // 空白行: 行內包含一個或多個...")
 
mNo edit summary
 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
使用正規表示法 ([[Regular expression]]) 取代文字檔內的空白行
使用正規表示法 ([[Regular expression]]) ,刪除文字檔內的空白行


== 狀況1 ==
名詞解釋
# 空白: (1) 不輸入任何字,即不包含任何字元 、也可能是指 (2) 空白字元。下文為了避免兩者混淆,狀況 (1) 標記為「空 (不需要輸入任何字)」、狀況 (2) 標記為「空白字元,可能是空白鍵 (SPACE) 或定位鍵 (TAB) ... ...」
# 空白字元: 空白鍵 (SPACE) 或定位鍵 (TAB)
# 空白行: 該行行內可能包含一個或多個空白字元、或者行內不包含任何字元
 
== 資料狀況1 ==
資料狀況
<pre>
<pre>
"  abc " // 不是空白行
"  abc " // 不是空白行
"  " // 空白行: 行內包含一個或多個空白字元 (SPACE) 或 定位鍵 (TAB)
"  " // 空白行 (1): 行內包含一個或多個空白字元,可能是空白鍵 (SPACE) 或定位鍵 (TAB)
"" // 空白行: 行內不包含任何字元  
"" // 空白行 (2): 行內不包含任何字元  
</pre>
</pre>


使用工具: 適用 Sublime Text 與 EmEditor 軟體,需勾選「使用規則運算式」。{{exclaim}} 不適用 Notepad++ 軟體<ref>[http://www.sitepoint.com/forums/showthread.php?448843-Regex-delete-multiple-blank-lines Regex: delete multiple blank lines]</ref>
預期目標:
* 尋找: {{kbd | key=<nowiki>^[\s\t]*$\n</nowiki>}} --> 取代為: 空白
* 清除空白行 (1) 、空白行 (2)
 
 
使用工具: 適用 Sublime Text 與 EmEditor 軟體,需勾選「使用規則運算式」。{{exclaim}} 語法不適用 Notepad++ 軟體<ref>[http://www.sitepoint.com/forums/showthread.php?448843-Regex-delete-multiple-blank-lines Regex: delete multiple blank lines]</ref>
* 尋找:  
** {{Mac}} {{kbd | key=<nowiki>^[\s\t]*$\n</nowiki>}}、或 {{kbd | key=<nowiki>^\s*\n</nowiki>}}
** {{Win}} {{kbd | key=<nowiki>^[\s\t]*$\r\n</nowiki>}}、或 {{kbd | key=<nowiki>^\s*\r\n</nowiki>}}
* 取代為: 空 (不需要輸入任何字)


使用工具: Notepad++
使用工具: Notepad++
* Notepad++ 軟體選單: 編輯 -> 行列 -> 移除空行(含空白字元)<ref>[http://stackoverflow.com/questions/3866034/removing-empty-lines-in-notepad regex - Removing empty lines in Notepad++ - Stack Overflow]</ref>
* Notepad++ 軟體選單: 編輯 -> 行列 -> 移除空行(含空白字元)<ref>[http://stackoverflow.com/questions/3866034/removing-empty-lines-in-notepad regex - Removing empty lines in Notepad++ - Stack Overflow]</ref>


== 狀況2 ==
== 資料狀況2 ==
<pre>
<pre>
"  abc " // 不是空白行
"  abc " // 不是空白行
"" // 空白行: 行內不包含任何字元  
"" // 空白行 (2): 行內不包含任何字元  
</pre>
</pre>


預期目標
* 刪除空白行 (2)


使用工具: 適用 Sublime Text 與 EmEditor 軟體,需勾選「使用規則運算式」。 {{exclaim}} 不適用 Notepad++ 軟體
使用工具: 適用 Sublime Text on {{Mac}},需勾選「使用規則運算式」。 {{exclaim}} 語法不適用 Notepad++ 軟體
* 尋找: {{kbd | key=<nowiki>^$\n</nowiki>}} --> 取代為: 空白
* 尋找: {{kbd | key=<nowiki>^$\n</nowiki>}} --> 取代為: 空 (不需要輸入任何字)
* 尋找: {{kbd | key=<nowiki>\n\n+</nowiki>}} --> 取代為: {{kbd | key=<nowiki>\n</nowiki>}}
* 尋找: {{kbd | key=<nowiki>\n\n+</nowiki>}} --> 取代為: {{kbd | key=<nowiki>\n</nowiki>}}


使用工具: Notepad++,需勾選「用類型表式
使用工具: EmEditor on {{Win}},需勾選「規則運算式」
* 尋找: {{kbd | key=<nowiki>^$\r\n</nowiki>}} --> 取代為: 空 (不需要輸入任何字)
 
使用工具: Notepad++ on {{Win}},需勾選「用類型表式」
* 尋找: {{kbd | key=<nowiki>\r\n[\r\n]*</nowiki>}} 或 {{kbd | key=<nowiki>\r\n[\r\n]+</nowiki>}} --> 取代為: {{kbd | key=<nowiki>\r\n</nowiki>}}  
* 尋找: {{kbd | key=<nowiki>\r\n[\r\n]*</nowiki>}} 或 {{kbd | key=<nowiki>\r\n[\r\n]+</nowiki>}} --> 取代為: {{kbd | key=<nowiki>\r\n</nowiki>}}  


Line 31: Line 49:
* [http://www.ultraedit.com/support/tutorials_power_tips/ultraedit/remove_blank_lines.html Use regular expressions to remove blank lines in a text file]
* [http://www.ultraedit.com/support/tutorials_power_tips/ultraedit/remove_blank_lines.html Use regular expressions to remove blank lines in a text file]


=== 移除一行空白: ===
使用工具: 適用 Sublime Text 與 EmEditor 軟體,需勾選「使用規則運算式」。 {{exclaim}} 不適用 Notepad++ 軟體
* 尋找: {{kbd | key=<nowiki>\n\n</nowiki>}} --> 取代為: {{kbd | key=<nowiki>\n</nowiki>}}


== References ==


references
<references/>
<references/>




[[Category:Regular expression]] [[Category:Tools]] [[Category:Tools]] [[Category:Data Science]] [[Category: Data cleaning]]
[[Category:Regular expression]] [[Category:Tool]] [[Category:Data Science]] [[Category: Data cleaning]] [[Category:String manipulation]]

Latest revision as of 13:47, 4 May 2022

使用正規表示法 (Regular expression) ,刪除文字檔內的空白行

名詞解釋

  1. 空白: (1) 不輸入任何字,即不包含任何字元 、也可能是指 (2) 空白字元。下文為了避免兩者混淆,狀況 (1) 標記為「空 (不需要輸入任何字)」、狀況 (2) 標記為「空白字元,可能是空白鍵 (SPACE) 或定位鍵 (TAB) ... ...」
  2. 空白字元: 空白鍵 (SPACE) 或定位鍵 (TAB)
  3. 空白行: 該行行內可能包含一個或多個空白字元、或者行內不包含任何字元

資料狀況1[edit]

資料狀況

"  abc " // 不是空白行
"  " // 空白行 (1): 行內包含一個或多個空白字元,可能是空白鍵 (SPACE) 或定位鍵 (TAB)
"" // 空白行 (2): 行內不包含任何字元 

預期目標:

  • 清除空白行 (1) 、空白行 (2)


使用工具: 適用 Sublime Text 與 EmEditor 軟體,需勾選「使用規則運算式」。Icon_exclaim.gif 語法不適用 Notepad++ 軟體[1]

  • 尋找:
    • macOS icon_os_mac.png ^[\s\t]*$\n、或 ^\s*\n
    • Win   ^[\s\t]*$\r\n、或 ^\s*\r\n
  • 取代為: 空 (不需要輸入任何字)

使用工具: Notepad++

  • Notepad++ 軟體選單: 編輯 -> 行列 -> 移除空行(含空白字元)[2]

資料狀況2[edit]

"  abc " // 不是空白行
"" // 空白行 (2): 行內不包含任何字元 

預期目標

  • 刪除空白行 (2)

使用工具: 適用 Sublime Text on macOS icon_os_mac.png ,需勾選「使用規則運算式」。 Icon_exclaim.gif 語法不適用 Notepad++ 軟體

  • 尋找: ^$\n --> 取代為: 空 (不需要輸入任何字)
  • 尋找: \n\n+ --> 取代為: \n

使用工具: EmEditor on Win   ,需勾選「規則運算式」

  • 尋找: ^$\r\n --> 取代為: 空 (不需要輸入任何字)

使用工具: Notepad++ on Win   ,需勾選「用類型表式」

  • 尋找: \r\n[\r\n]*\r\n[\r\n]+ --> 取代為: \r\n

使用工具: UltraEdit un-verified


References[edit]