Editing
Regular expression in Mandarin
(section)
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== cases == === 取代換行符號為逗號 === 將Email清單,轉成Email軟體可以使用的寄信名單 <pre> 原 aaa@email.com bbb@email.com ccc@email.com 改成 aaa@email.com,bbb@email.com,ccc@email.com </pre> ==== 方案1: Sublime Text, EmEditor ==== 語法適用 [http://www.sublimetext.com/ Sublime Text], [http://www.emeditor.com/ EmEditor]軟體 (以下為 EmEditor 的操作說明) # Menu: Search -> Replace # click "Use Regular Expression" ## Find: {{kbd | key = <nowiki>\n</nowiki>}} ([[Return symbol | 換行符號]] 。{{Win}} 作業系統的換行符號是 {{kbd | key = <nowiki>\r\n</nowiki>}}、{{Mac}} 作業系統的換行符號是 {{kbd | key = <nowiki>\n</nowiki>}},取兩者共有的符號。如果使用 {{Linux}} 作業系統的換行符號是 {{kbd | key = <nowiki>\r</nowiki>}}。 ) ## Replace with: {{kbd | key = <nowiki>, </nowiki>}} # click "Replace all" <div style="float: left; width: 100%; position: relative; display: block; clear: left;"> <div style="width: 46%; float: left; margin:0 auto; position: relative; display: block; "> ===== 將每行的文字,移除換行,並且都加上逗號分隔 ===== <pre> // before Elmo Emie Granny Bird // after Elmo, Emie, Granny Bird </pre> 方法: 使用 [http://www.sublimetext.com/ Sublime Text] 或 [https://zh-tw.emeditor.com/ EmEditor]。 * Find what: {{kbd | key = <nowiki>\n</nowiki>}} * Replace with: {{kbd | key = <nowiki>, </nowiki>}} 此例是將每行的文字,都加上逗號+空格分隔 (如果要用別的符號分隔,例如頓號分隔,則是 Replace with: {{kbd | key = <nowiki>、</nowiki>}}) </div> <div style="width: 46%; float: left; margin:0 auto; position: absolute; display: block; left: 54%; top: 0;"> ===== 將逗號分隔的文字,還原成逐行顯示,並且移除分隔符號 (,) ===== <pre> // before Elmo, Emie, Granny Bird // after Elmo Emie Granny Bird </pre> 方法: 使用 [http://www.sublimetext.com/ Sublime Text] 或 [https://zh-tw.emeditor.com/ EmEditor]。{{exclaim}} 輸出結果的每行前面可能會有空白 * Find what: {{kbd | key = <nowiki>([^,]+),</nowiki>}} * Replace with: {{kbd | key = <nowiki>\1\n</nowiki>}} </div> </div> <div style="clear:both;"> </div> ==== 方案2: Notepad++ ==== 使用[http://notepad-plus-plus.org/ Notepad++]軟體 # 選單: 尋找 -> 取代 # 搜尋模式: 勾選「增強模式」 (不是勾選「用類型表式」) ## 尋找目標: {{kbd | key = <nowiki>\n</nowiki>}} (換行符號) ## 取代成: {{kbd | key = <nowiki>, </nowiki>}} # 勾選全部取代 相關資料: [http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Replacing_Newlines How To Replace Line Ends, thus changing the line layout] last visited: 2010-01-27 ==== 方案3: Microsoft Word ==== 使用Microsoft Word 2002軟體 # 選單: 編輯 -> 取代 # 勾選增強模式 ## 尋找目標: {{kbd | key = <nowiki>^p</nowiki>}} (段落標記) ## 取代為: {{kbd | key = <nowiki>, </nowiki>}} # 勾選全部取代 ==== 方案4: Sed command for linux ==== {{kbd | key=<nowiki>sed 's/要被取代的字串/新的字串/g' old.filename > new.filename</nowiki>}}<ref>[http://linux.vbird.org/linux_basic/0330regularex.php#sed_replace 鳥哥的 Linux 私房菜 -- 正規表示法 (regular expression, RE) 與文件格式化處理]</ref> (1)要被取代的字串: :a;N;$!ba;s/\n (2)新的字串: ; {{kbd | key=<nowiki>sed ':a;N;$!ba;s/\n/; /g' old.filename > new.filename</nowiki>}} <ref>參考 [http://stackoverflow.com/questions/1251999/sed-how-can-i-replace-a-newline-n unix - sed: How can I replace a newline? ]</ref> ==== 方案5: 使用支援十六進位編輯 (HEX) 的編輯軟體 ==== 使用支援十六進位編輯 (HEX) 的編輯軟體,例如: [https://itunes.apple.com/tw/app/ihex-hex-editor/id909566003?mt=12 iHex - Hex Editor] for {{Mac}} # 選單 Edit -> Find # Find: {{kbd | key=<nowiki>0A</nowiki>}} 換行符號 # Replace: {{kbd | key=<nowiki>2c 20</nowiki>}} 其中 2c 是逗號, 20 是空白 # 儲存檔案 相關資料 * [https://www.hexdictionary.com/ Hex Dictionary | Convert Hex / Hexadecimal Numbers to Binary and Decimal] === Find IP address (IPv4) === 適用 [http://notepad-plus-plus.org/ Notepad++] 軟體 v.5.9.5 # 選單: 尋找 -> 取代 # 搜尋模式: 勾選「用類型表式」 ## 尋找目標: {{kbd | key=<nowiki>\d\d?\d?\.\d\d?\d?\.\d\d?\d?\.\d\d?\d?</nowiki>}} note: not support {n} syntax 適用 [https://www.sublimetext.com/ Sublime Text] v. 3.2.21 # Find: {{kbd | key=<nowiki>(?:\d{1,3}\.){3}\d{1,3}</nowiki>}} 參考資料: * [https://www.regular-expressions.info/ip.html How to Find or Validate an IP Address] {{access | date = 2019-06-05}} * [http://sourceforge.net/projects/notepad-plus/forums/forum/331754/topic/4780602 SourceForge.net: Notepad++: Regular expression for IP addresses] * [http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses regex - Regular expression that matches valid IPv6 addresses - Stack Overflow] {{access | date = 2015-08-10}} === 移除記事本純文字檔的黑色方塊(UNIX系統的換行符號 LF ) === 使用notepad++軟體 # 選單: 尋找 -> 取代 # 搜尋模式: 勾選「增強模式」 ## 尋找目標: \n\n (註: 2個LF ) ## 取代成: \r\n (註: CR與LF ) 用記事本打開純文字檔時,就不會看到黑色方塊 === 將每項元素,加上引號框起來 === ==== 將陣列的每項元素,都加上引號框起來 ==== <pre> Elmo, Emie, Granny Bird, Herry Monster, 喀喀獸 修改成 'Elmo', 'Emie', 'Granny Bird', 'Herry Monster', '喀喀獸' </pre> 方法1: 使用 PHP {{exclaim}} 如果元素包含換行符號,不能用下面方法處理。 <pre> $users = array('Elmo', 'Emie', 'Granny Bird', 'Herry Monster', '喀喀獸'); //「單引號」相隔每個元素 $result = implode(",", preg_replace('/^(.*?)$/', "'$1'", $users)); //「雙引號」相隔每個元素 $result = implode(",", preg_replace('/^(.*?)$/', "\"$1\"", $users)); echo $result; </pre> Thanks, Joshua! More on [http://melikedev.com/2010/02/24/php-wrap-implode-array-elements-in-quotes/ PHP - Wrap Implode Array Elements in Quotes » Me Like Dev] 方法2: 使用 [http://www.sublimetext.com/ Sublime Text] 或 [https://zh-tw.emeditor.com/ EmEditor] * Find: {{kbd | key = <nowiki>([^\s|,]+)</nowiki>}} * 分隔符號 **「單引號」相隔每個元素 Replace with: {{kbd | key = <nowiki>'\1'</nowiki>}} **「雙引號」相隔每個元素 Replace with: {{kbd | key = <nowiki>"\1"</nowiki>}} 方法3: 使用 [https://notepad-plus-plus.org/ Notepad++]。啟用搜尋模式的「用類型表式」 * Find: {{kbd | key = <nowiki>([^\s|,]+)</nowiki>}} * 分隔符號 **「單引號」相隔每個元素 Replace with: {{kbd | key = <nowiki>'$1'</nowiki>}} **「雙引號」相隔每個元素 Replace with: {{kbd | key = <nowiki>"$1"</nowiki>}} <div style="float: left; width: 100%; position: relative; display: block; clear: left;"> <div style="width: 46%; float: left; margin:0 auto; position: relative; display: block; "> ==== 將每行的文字,都加上引號框起來,並且移除換行 ==== <pre> // before Elmo Emie Granny Bird // after 'Elmo', 'Emie', 'Granny Bird' </pre> 方法1: 使用 [http://www.sublimetext.com/ Sublime Text] 、[https://notepad-plus-plus.org/downloads/ Notepad++] 或 [https://zh-tw.emeditor.com/ EmEditor]。該方法有處理每行的前面或後面可能有一格或多格空白 如果使用 {{Mac}} 作業系統 * Find what: {{kbd | key = <nowiki>(\S+)(\s?)+$\n</nowiki>}} * Replace with: {{kbd | key = <nowiki>'\1', </nowiki>}} <br />(如果要使用雙引號框起來,則是 Replace with: {{kbd | key = <nowiki>"\1", </nowiki>}}) 如果使用 {{Win}} 作業系統,需要修改換行符號 {{kbd | key = <nowiki>\n</nowiki>}} 為 {{kbd | key = <nowiki>\r\n</nowiki>}} * Find what: {{kbd | key = <nowiki>(\S+)(\s?)+$\r\n</nowiki>}} on {{Mac}} * Replace with: {{kbd | key = <nowiki>'\1', </nowiki>}} <br />(如果要使用雙引號框起來,則是 Replace with: {{kbd | key = <nowiki>"\1", </nowiki>}}) 方法2: 使用 [http://www.sublimetext.com/ Sublime Text] 或 [https://zh-tw.emeditor.com/ EmEditor] {{exclaim}} 該方法沒有處理每行的後面可能有一格或多格空白 * Find what: {{kbd | key = <nowiki>(.*)$\n</nowiki>}} 或 {{kbd | key = <nowiki>(\S+)$\n</nowiki>}} 或 {{kbd | key = <nowiki>(\S+)\n</nowiki>}} * Replace with: {{kbd | key = <nowiki>'\1', </nowiki>}} More details on the page [[Add quotation at the start and end of each line | add quotation at the start and end of each line]]. </div> <div style="width: 46%; float: left; margin:0 auto; position: absolute; display: block; left: 54%; top: 0;"> ==== 將引號框起來的文字,還原成逐行顯示,並且移除分隔符號 (,) ==== <pre> // before 'Elmo', 'Emie', 'Granny Bird' // after Elmo Emie Granny Bird </pre> 方法: 使用 [http://www.sublimetext.com/ Sublime Text] 或 [https://zh-tw.emeditor.com/ EmEditor]。該方法有處理每行的前面或後面可能有一格或多格空白 * Find what: {{kbd | key = <nowiki>'(([^,|^'])+)',?\s?</nowiki>}} * Replace with: {{kbd | key = <nowiki>\1\n</nowiki>}} </div> </div> <div style="clear:both;"> </div> === 將試算表欄位值前後,加上雙引號框起來 === * [https://errerrors.blogspot.com/2019/03/how-to-enclose-non-empty-cell-with-double-quotes-in-google-spreadsheet.html Google 試算表的文字類型欄位值的前後加上雙引號] === Find non-ASCII characters 尋找中文、非英文的文字 === ==== Find non-ASCII characters in Google sheet ==== 適用: Google Drive 試算表的 Regular expression 相關函數,例如: [https://support.google.com/docs/answer/3098292?hl=zh-Hant REGEXMATCH]、[https://support.google.com/docs/answer/3098244?hl=en REGEXEXTRACT]、[https://support.google.com/docs/answer/3098245?hl=zh-Hant RegExReplace] 函數、Notepad++的搜尋 <pre> [^\x00-\x80]+ </pre> ==== Find non-ASCII characters in LibreOffice ==== 適用: [https://zh-tw.libreoffice.org/ LibreOffice] [https://help.libreoffice.org/6.2/en-US/text/scalc/01/func_regex.html REGEX] function<ref>[https://help.libreoffice.org/6.2/en-US/text/shared/01/02100001.html?&DbPAR=WRITER&System=MAC List of Regular Expressions]</ref>、Total commander 的 Multi-Rename tool<ref>取代非英文的文字,但是不包含 . 符號: <nowiki>[^\u0000-\u0080|.]+ </nowiki></ref><ref>[http://stackoverflow.com/questions/150033/regular-expression-to-match-non-english-characters javascript - Regular expression to match non-english characters? - Stack Overflow]</ref> <pre> [^\u0000-\u0080]+ </pre> ==== Find Chinese characters in Google sheet ==== 範例:如果 A2 包含任一中文字,則欄位值顯示「中文」。如果未包含任何中文字,則欄位值顯示「英文」: <pre> =IF(REGEXMATCH(A2, "[\一-\龥]"), "中文", "英文") </pre> {{exclaim}} Google 不支援以下語法,會顯示「... 是無效的規則運算式。」錯誤 * {{kbd | key=<nowiki>[\u4e00-\u9fa5]</nowiki>}} * {{kbd | key=<nowiki>[^\u4e00-\u9fa5]</nowiki>}} * {{kbd | key=<nowiki>[\p{Script=Hans}]</nowiki>}} * {{kbd | key=<nowiki>[\p{Han}]</nowiki>}} ==== Find Chinese characters in MySQL ==== 尋找 `column_name` 欄位值包含中文字。適用: MySQL<ref>[https://stackoverflow.com/questions/9795137/how-to-detect-rows-with-chinese-characters-in-mysql How to detect rows with chinese characters in MySQL? - Stack Overflow]</ref><ref>[https://stackoverflow.com/questions/401771/how-can-i-find-non-ascii-characters-in-mysql How can I find non-ASCII characters in MySQL? - Stack Overflow]</ref> <pre> SELECT `column_name` FROM `table_name` WHERE HEX(`column_name`) REGEXP '^(..)*(E[4-9])'; </pre> 說明 * 正則表達式 '^(..)*(E[4-9])' 的含義是尋找從字符串開始處(表示為 ^),每兩個字符(表示為 ..)重複零次或多次(表示為 *),直到找到一個匹配 (E[4-9]) 的序列。 * 透過加入 ^(..)* 使得搜尋條件更加嚴格,它要求 (E[4-9]) 的出現位置必須是在一個合法的 UTF-8 字符邊界上。這意味著它更可能正確匹配開頭為中文字符的字符串,而忽略那些僅在中間或末尾偶然包含 E4 到 E9 序列的非中文字符串。 ==== Find non-ASCII characters in MySQL ==== 尋找 `column_name` 欄位值不完全是 ASCII 字元 <pre> SELECT `column_name` FROM `table_name` WHERE `column_name` <> CONVERT(`column_name` USING ASCII) </pre> ==== Find non-ASCII characters in PHP ==== 尋找欄位值包含中文字,中文字包含繁體中文與簡體中文,不包含標點符號 (例如 {{kbd | key = <nowiki>,</nowiki>}})、全形標點符號 (例如 {{kbd | key = <nowiki>,</nowiki>}})以及特殊符號,例如 Emoji:{{kbd | key = ⭐}}。 PHP: exact match <pre> // approach 1 if (preg_match('/^[\x{4e00}-\x{9fa5}]+$/u', $string)) { echo "全部文字都是中文字" . PHP_EOL; }else{ echo "部分文字不是中文字" . PHP_EOL; } // approach 2 if (preg_match('/^[\p{Han}]+$/u', $string)) { echo "全部文字都是中文字" . PHP_EOL; }else{ echo "部分文字不是中文字" . PHP_EOL; } </pre> partial match ([http://sandbox.onlinephpfunctions.com/code/d780845d20877c0fd2e693b28ed02a10d250d39e online demo] hosted by [http://sandbox.onlinephpfunctions.com/ PHP Sandbox]) <pre> // approach 1 $string = '繁體中文-简体中文-English-12345-。,!-.,!-⭐'; $pattern = '/[\p{Han}]+/u'; preg_match_all($pattern, $string, $matches, PREG_OFFSET_CAPTURE); var_dump($matches); // approach 2 $string = '繁體中文-简体中文-English-12345-。,!-.,!-⭐'; $pattern = '/[\x{4e00}-\x{9fa5}]+/u'; preg_match_all($pattern, $string, $matches, PREG_OFFSET_CAPTURE); var_dump($matches); </pre> 技術問題除錯: 錯誤訊息 <pre>preg_match(): Compilation failed: character value in \x{} or \o{} is too large at offset 8</pre> 解決方式: [http://php.net/manual/en/function.preg-match.php preg_match()] 需要加上 {{kbd | key = u }} 變數<ref>[https://stackoverflow.com/questions/32375531/preg-match-compilation-failed-character-value-in-x-or-o-is-too-large-a php - preg_match(): Compilation failed: character value in \x{} or \o{} is too large at offset 27 on line number 25 - Stack Overflow]</ref>。 ==== Find non-ASCII characters in JavaScript ==== * [https://stackoverflow.com/questions/21109011/javascript-unicode-string-chinese-character-but-no-punctuation regex - Javascript unicode string, chinese character but no punctuation - Stack Overflow] 參考資料: * [http://blog.csdn.net/tinyletero/article/details/8201465 unicode编码 \u4e00-\u9fa5 匹配所有中文 - CSDN博客] * [https://stackoverflow.com/questions/38168419/codeigniter-form-validation-for-chinese-words php - CodeIgniter Form Validation for Chinese Words - Stack Overflow] * [https://zh.wikipedia.org/zh-tw/%E4%B8%AD%E6%97%A5%E9%9F%93%E7%B5%B1%E4%B8%80%E8%A1%A8%E6%84%8F%E6%96%87%E5%AD%97%E5%88%97%E8%A1%A8 中日韓統一表意文字列表 - 維基百科,自由的百科全書] === 尋找英文字 === ==== 尋找 ASCII 字元 in MySQL ==== <pre> -- 尋找欄位 `my_column` 欄位值是 ASCII 字元 SELECT * FROM `my_table` WHERE `my_column` LIKE CONVERT(`my_column` USING ASCII) </pre> 相關文章 * [https://errerrors.blogspot.com/2020/07/search-app-not-apple-in-englishsearching.html 解決英文字的搜尋:搜尋 app 而不是 apple] 參考資料 * [https://stackoverflow.com/questions/401771/how-can-i-find-non-ascii-characters-in-mysql How can I find non-ASCII characters in MySQL? - Stack Overflow] ==== 尋找 ASCII 字元 in PHP ==== Code I: <pre> if (preg_match('/[^\x20-\x7f]/', $keyword) === 0) { echo "The keyword is ASCII only"; } else { echo "The keyword contains non-ASCII characters (like Chinese, Japanese, etc.)"; } </pre> Explanation: * {{kbd | key=<nowiki>/[^\x20-\x7f]/</nowiki>}} 是一個正規表達式: ** {{kbd | key=<nowiki>\x20</nowiki>}} 代表空格字符 (ASCII 32) ** {{kbd | key=<nowiki>\x7f</nowiki>}} 代表 DELETE 字符 (ASCII 127) ** {{kbd | key=<nowiki>[^\x20-\x7f]</nowiki>}} 表示「任何不在 \x20 到 \x7f 範圍內的字符」 這個範圍 {{kbd | key=<nowiki>(\x20-\x7f)</nowiki>}} 基本上涵蓋了所有可印刷的 ASCII 字符;不符合條件,則表示字串中包含非 ASCII 字符 (如中文、日文等) Code II<ref>[https://www.php.net/manual/en/regexp.reference.character-classes.php PHP: Character classes - Manual]</ref> <pre> $pattern = '/^[[:ascii:]]+$/i'; $text = "Hello World"; // ASCII only if (preg_match($pattern, $text)) { echo "純 ASCII 字元"; } else { echo "包含非 ASCII 字元"; } $text = "Hello 世界"; // Contains non-ASCII if (preg_match($pattern, $text)) { echo "純 ASCII 字元"; } else { echo "包含非 ASCII 字元"; } </pre> Explanation: * 匹配整個字串({{kbd | key=<nowiki>^</nowiki>}} 和 {{kbd | key=<nowiki>$</nowiki>}}) * 需要符合一個或多個 ASCII 字元({{kbd | key=<nowiki>[[:ascii:]]+</nowiki>}}) * 不區分大小寫({{kbd | key=<nowiki>i</nowiki>}} flag) ==== 尋找英文字、數字、破折號(-)或底線(_)字元 in MySQL ==== <pre> -- 尋找欄位 `my_column` 欄位值是包含英文字、數字、破折號(-)或底線(_)的字串 SELECT * FROM `my_table` WHERE `my_column` REGEXP '[a-zA-Z0-9\-_]' </pre> === 將每行文字的行頭加上逗號符號 === [[Adding characters to document lines]] === 知道前面跟後面的文字,但是中間文字忘記了 === 使用notepad++軟體 # 選單: 尋找 -> 取代 # 搜尋模式: 勾選「用類型表示」 ## 尋找目標: {{kbd | key=a(.*)le}} 就可以找到(1)apple (2)apps lesson ... 等a開頭、le結尾的文字,中間可夾雜空白。 {{exclaim}} 中文字串搜尋,建議將文件的編碼改成 UTF-8 編碼 === 移除空白行 === <pre> # (原) 每行可能間隔一行空白或多行空白 尼歐 崔妮蒂 莫斐斯 史密斯 祭師 # (後) 改成每行逐行緊接著 尼歐 崔妮蒂 莫斐斯 史密斯 祭師 </pre> 移除一行空白或多行空白( 行內可能包含一個或多個空白字元 {{kbd | key= SPACE}} 、定位鍵{{kbd | key= TAB}}) * 使用工具: 適用 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>}} --> 取代為: 空 (不需要輸入任何字) * 使用工具: Notepad++ v7.8.7 ** Notepad++ 軟體選單: 編輯 -> 行處理 -> 移除空行(包括只有空白字元的行)<ref>[http://stackoverflow.com/questions/3866034/removing-empty-lines-in-notepad regex - Removing empty lines in Notepad++ - Stack Overflow]</ref> * 詳細說明,請見 [[Regular replace blank lines]] === 尋找非空白的文字 === * 尋找: {{kbd | key=<nowiki>[^\s]+</nowiki>}} [https://regex101.com/r/zH7wV3/1 online demo] * [https://errerrors.blogspot.com/2022/01/avoid-whitespace-character-caused-program-stop-abnormally.html 解決遇到空白段落發生程式異常錯誤而執行中斷的問題] 「... 看起來空白的字元,卻無法使用 TRIM 函數去除,可能是其他的空白字元。解決方式是偵測段落內有沒有包含中英文、數字,再進行後續處理。」 === 去除標點符號、特殊符號等 === * [https://stackoverflow.com/questions/5689918/php-strip-punctuation/5689989 regex - PHP strip punctuation - Stack Overflow] === 將特定符號相隔的文字,改成逐行顯示 === 例子: <pre> # (原) 頓號(、)符號相隔的文字 尼歐、莫斐斯、崔妮蒂、史密斯、祭師 # (後) 改成逐行顯示 尼歐 莫斐斯 崔妮蒂 史密斯 祭師 </pre> 使用 [http://www.sublimetext.com/ Sublime Text] 或 [https://zh-tw.emeditor.com/ EmEditor] * Find: {{kbd | key = <nowiki>([^、]+)([、]{1})</nowiki>}} * Replace with: {{kbd | key = <nowiki>\1\n</nowiki>}} 語法說明 * <nowiki>[^、]</nowiki> : 符合任意字,但不是頓號(、)的文字 * <nowiki>[^、]+</nowiki> : 一次以上不是頓號(、)的文字 * <nowiki>([^、]+)</nowiki> : 符合「一次以上不是頓號(、)的文字」規則的文字 * <nowiki>[、]</nowiki>: 出現頓號(、)任意次的文字 * <nowiki>[、]{1}</nowiki> : 出現頓號(、)一次的文字 * <nowiki>([、]{1})</nowiki> : 符合「出現頓號(、)一次的文字」規則的文字 === 將每行文字的結尾處,加入空一格 (半形空白) === 法1: 適用軟體: Sublime Text, EmEditor # Menu: Search -> Replace # click "Use Regular Expression" ## Find: {{kbd | key = <nowiki>\n</nowiki>}} ## Replace with: {{kbd | key = <nowiki>_\n</nowiki>}}(符號 {{kbd | key = <nowiki>\n</nowiki>}} 前面的 _ 自行替換成半形空白) # click "Replace all" 法2: 適用軟體: Sublime Text, EmEditor # Menu: Search -> Replace # click "Use Regular Expression" ## Find: {{kbd | key = <nowiki>$</nowiki>}} ## Replace with: {{kbd | key = <nowiki>_$</nowiki>}}(符號 {{kbd | key = <nowiki>$</nowiki>}} 前面的 _ 自行替換成半形空白) # click "Replace all" {{exclaim}} 需要檢查最後一行是否是空白行,如果不是空白行,不會套用到該取代規則 === 將每行文字內夾雜的空白,取代成 Tab 符號 === 將原本空白間隔的欄位值,取代成 Tab鍵間隔的欄位值。輸出結果可以方便貼到 MS Excel 或 [[Google spreadsheet]]。 <pre># \t 代表是 Tab 鍵,又稱定位鍵 # before aaa bbb ccc # after aaa\tbbb\tccc </pre> 說明: \S 代表非空白字元, \r\n 代表[[Return symbol | 換行符號]]。[^\S\r\n] 則代表不是非空白字元、也不是換行符號。換句話說尋找空白,但不包含換行符號。 使用 Sublime Text 軟體 (參考資料<ref>[http://www.techrepublic.com/blog/microsoft-office/quickly-replace-multiple-space-characters-with-a-tab-character/ Quickly replace multiple space characters with a tab character - TechRepublic]</ref> <ref>[http://stackoverflow.com/questions/3469080/match-whitespace-but-not-newlines-perl regex - Match whitespace but not newlines (Perl) - Stack Overflow]</ref>) # Menu: Search -> Replace # click "Use Regular Expression" ## Find: {{kbd | key = <nowiki>([^\S\n]+)</nowiki>}} 或 {{kbd | key = <nowiki>([^\S\r\n]+)</nowiki>}} 或 {{kbd | key = <nowiki>\s\s+</nowiki>}} 或 {{kbd | key = <nowiki>_{1,}</nowiki>}} ( 自行替換 _ 成半形空白) {{exclaim}} 因為 {{kbd | key = <nowiki>\s</nowiki>}} 包含了空白與換行字元,所以不能直接使用 {{kbd | key = <nowiki>\s+</nowiki>}} 當做搜尋條件 ## Replace with: {{kbd | key = <nowiki>\t</nowiki>}} # click "Replace all" === 移除每行文字前後面可能多個的空白 === ==== 移除每行文字最前面可能多個的空白 ==== * 尋找: {{kbd | key = <nowiki>^\s+</nowiki>}} --> 取代為: 空白 (適用軟體: Sublime Text、EmEditor,需啟用 "Use Regular Expression" ) <pre># before aaa bbb ccc # after aaa bbb ccc </pre> ==== 移除每行文字最後面可能多個的空白 ==== * 尋找: {{kbd | key = <nowiki>\s+$</nowiki>}} --> 取代為: 空白 (適用軟體: Sublime Text、EmEditor,需啟用 "Use Regular Expression" ) ==== 移除每行文字前面或後面可能多個的空白 ==== * 尋找: {{kbd | key = <nowiki>(^\s+|\s+$)</nowiki>}} --> 取代為: 空白 (適用軟體: Sublime Text、EmEditor,需啟用 "Use Regular Expression" ) === 尋找包含不是數字,是文字的行 === 預期每行資料都是數字,尋找包含不是數字,是文字的行 <pre> [^\d|\n] </pre> === 尋找 Hashtag === [[Extract all hashtags from text]] === 尋找文章內容中的網址 === [[Extract url from text]] === 尋找數字 === 請參考 [[Data cleaning#Numeric]] * [[Extract large number from text | 尋找文章內容中的長數字]] * [https://errerrors.blogspot.com/2020/02/convert-minguo-calendar-to-common-era-using-google-sheet.html Google 試算表將民國轉西元日期] === 移除刮號內的文字 === 請參考 [[Remove text within brackets]] === Search unmatched string === find un-commented console.log: original format: some lines contains un-commented [[Javascript debug]] information <pre> console.log("un-commented debug information"); //console.log("commented debug information"); </pre> Search pattern: find not started with the / symbol before the string "console.log" <pre> [^/](console\.log) </pre>
Summary:
Please note that all contributions to LemonWiki共筆 are considered to be released under the Creative Commons Attribution-NonCommercial-ShareAlike (see
LemonWiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Main page
Current events
Recent changes
Random page
Help
Categories
Tools
What links here
Related changes
Special pages
Page information