# notepad++技巧 用正規表達式來搜尋和取代 --- ## 搜尋換行符號 * windows系統的格式 \r\n * linux系統的格式 \r --- ## 搜尋"空白" * 注意全形空白``` ```與半形空白``` ```的差別 * tab換行的空白 ```\t``` * html的空白 ```&nbsp:``` --- ## 反白後,再按搜尋or取代 先反白再按下搜尋會發生什麼事? 會自動將反白內容填入到尋找內容的格子 ![](https://i.imgur.com/R5u7jlj.png) --- ## 規則運算式 正規表達式 regex 是什麼? :::info 範例格式 ```[A-z]{2,4}``` ::: ```[]```裡面代表要搜尋的目標 * [a-z] 只找小寫 * [A-z] 找大寫+小寫 * [0-9] 只找數字 (提醒:可以變化成 1-5) * [A-z0-9] 找同時包含大小寫與數字混合的字 ```{}```裡面的數字代表要搜尋的長度 * {2,4} 找符合條件而且長度是2個字~4個字 * 可以只輸入{3,3}或是{3},只找符合條件且長度為3個字 --- ## 規則運算式搜尋實例 例如 ```[0-9]{10}``` ,可以只搜尋電話號碼的數字 ``` 客戶電話 tel:0910345678 聯絡人姓名 客戶電話 tel:0912345678 聯絡人姓名 客戶電話 tel:0917345678 聯絡人姓名 ``` 例如 ```[0-9]{4}-[0-9]{3}-[0-9]{3}``` ,可以搜尋包含-的電話號碼的數字 ``` 客戶電話 tel:0910-345-678 聯絡人姓名 客戶電話 tel:0912-345-678 聯絡人姓名 客戶電話 tel:0917-345-678 聯絡人姓名 ``` --- ## 規則運算式搜尋,萬用字元(任何字都找到)與無限長度 * ```.``` 萬用字元 * ```*``` 無限長度 例如:```【.*】```,可以找到所有被【】符號包起來的資料 ``` 不重要的字 【姓名】 不重要的字 不重要的字 【身分證】 不重要的字 不重要的字 【E-mail】 不重要的字 ``` :::info 注意:如果是同一行有多組符合,要改成 ```【.*?】``` ::: 例如下面這一段,使用 ```【.*】```,搜尋時會把這樣一整串視為搜尋到1組資料【姓名】【Email】,而不是分開2組 改成 ```【.*?】```就可以兩組分開 ``` 不重要的字 【姓名】【Email】 不重要的字 不重要的字 【身分證】不重要的字 ``` --- ## 規則運算式搜尋與取代 1. 搜尋模式選擇 **規則運算式** 2. 用( )框變數 3. 用$1 $2當取代的關鍵字 ![](https://i.imgur.com/jthhDVQ.png) ---