在整理代碼片段、論文排版、日志分析時,常需批量刪除行首的行號(如 123. code 或 456 code)。本文提供開箱即用的正則模式,並附常用正則操作符速查表。
| 場景 | 正則表達式 | 匹配示例 | 說明 |
|---|---|---|---|
| 行首數字 + 點號 | ^\d+\. | 1. int a; 123. printf(...) | ^ 行首,\d+ 多位數字,\. 點號 |
| 前有空格、無分隔符 | \<\d+\> | 456 int b; | \< \> 詞邊界,匹配獨立數字 |
| 通用:行首可選空白 + 數字 + 點/空白 | ^\s*\d+[\.\s]+ | 兼容上述兩種 | \s* 可選空白,[\.\s]+ 分隔符 |
.* 圖標)。^\d+\.),替換欄留空。| 操作符 | 效果 | 示例 |
|---|---|---|
. | 匹配任意單字符(除換行符) | a.c 匹配 abc axc |
? | 前項可選(0 或 1 次) | ab?c 匹配 ac abc |
* | 前項 0 次或多次(貪婪) | ab*c 匹配 ac abc abbc |
+ | 前項 1 次或多次(貪婪) | ab+c 匹配 abc abbc |
{N} | 精確 N 次 | \d{3} 匹配 3 位數字 |
{N,} | 至少 N 次 | \d{2,} 匹配 2 位以上數字 |
{N,M} | N 到 M 次 | \d{3,5} 匹配 3~5 位數字 |
^ | 行首(或字符類取反) | ^abc 行首 abc;[^abc] 非 abc |
$ | 行尾 | abc$ 行尾 abc |
\b | 單詞邊界 | \bcat\b 整詞 cat |
\B | 非單詞邊界 | \Bcat\B 嵌入詞中 |
\< | 單詞開頭 | \ |
\> | 單詞結尾 | cat\> 以 cat 結尾 |
() | 捕獲組 | (\d+) 捕獲數字供 $1 引用 |
| | 或 | cat|dog 匹配 cat 或 dog |
# 匹配:行首空白 + 數字 + 點/空白,捕獲後續內容 ^(\s*)\d+[\.\s]+(.*) # 替換:$1$2 (保留原縮進 $1,接內容 $2)
.* 會吞盡整行,用 .*? 或精確字符類 [^\n]*。. 不匹配換行,需 [\s\S]* 或開啟 s 修飾符。$、\ 需轉義(視編輯器而定)。熟練這幾個行號清洗正則,能讓代碼整理、文檔提取效率提升數倍。