首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

正則表達式實戰:批量移除源代碼行號的查找替換技巧

     編輯:關於C語言

正則表達式實戰:批量移除源代碼行號的查找替換技巧

在整理代碼片段、論文排版、日志分析時,常需批量刪除行首的行號(如 123. code 或 456 code)。本文提供開箱即用的正則模式,並附常用正則操作符速查表。

核心正則模式

場景正則表達式匹配示例說明
行首數字 + 點號^\d+\.1. int a; 123. printf(...)^ 行首,\d+ 多位數字,\. 點號
前有空格、無分隔符\<\d+\> 456 int b;\< \> 詞邊界,匹配獨立數字
通用:行首可選空白 + 數字 + 點/空白^\s*\d+[\.\s]+兼容上述兩種\s* 可選空白,[\.\s]+ 分隔符

編輯器操作步驟(以 VS Code / Notepad++ / Sublime 為例)

  1. 打開「查找替換」(Ctrl+H)。
  2. 勾選「正則表達式」模式(.* 圖標)。
  3. 查找欄填入正則(如 ^\d+\.),替換欄留空。
  4. 點擊「全部替換」。

常用正則操作符速查表

操作符效果示例
.匹配任意單字符(除換行符)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\> 以 cat 結尾
()捕獲組(\d+) 捕獲數字供 $1 引用
|或cat|dog 匹配 cat 或 dog

進階技巧:保留縮進只刪行號

# 匹配:行首空白 + 數字 + 點/空白,捕獲後續內容
^(\s*)\d+[\.\s]+(.*)
# 替換:$1$2  (保留原縮進 $1,接內容 $2)

避坑指南

  • 貪婪 vs 非貪婪:.* 會吞盡整行,用 .*? 或精確字符類 [^\n]*。
  • 跨行模式:單行模式下 . 不匹配換行,需 [\s\S]* 或開啟 s 修飾符。
  • 轉義:替換字符串中 $、\ 需轉義(視編輯器而定)。

熟練這幾個行號清洗正則,能讓代碼整理、文檔提取效率提升數倍。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved