整理文件时,常常会遇到一堆命名混乱的日志或文档。比如你有一堆备份文件:backup_2023.txt、backup_2024.txt,还有临时生成的temp_backup_2024.txt。你想只找出以“backup”开头、以“.txt”结尾的主文件,这时候手动筛选太费劲,用ref="/tag/2/" style="color:#3D6345;font-weight:bold;">Perl正则表达式就能一击命中。
行首和行尾的锚点符号
在Perl正则里,^ 表示字符串的开头,$ 表示结尾。它们像两个标记,帮你锁定目标的位置。比如,只想匹配整行正好是“backup.txt”的内容,就可以写:
^backup\.txt$
这样就不会误伤“my_backup.txt”或者“backup.txt.bak”这类中间或前后有额外字符的文件名。
实际场景:清理日志中的无效行
假设你在整理服务器日志,发现很多空行或只有空格的行占位置。可以用下面这行规则把它们找出来:
^\s*$
这里 \s 表示空白字符(包括空格、制表符),* 代表前面的内容出现零次或多次。整个表达式就匹配了从头到尾全是空白的行,方便一键删除。
提取特定格式的数据行
有时候你要从杂乱信息中提取固定格式的内容。比如所有以日期开头(如2024-04-05)、以“[INFO]”结尾的记录。可以这样写:
^\d{4}-\d{2}-\d{2}.*\[INFO\]$
\d{4} 匹配四位数字,.* 表示中间任意内容,最后的 $ 锁定结尾。这样一筛,干净利落。
正则不是程序员的专属工具,它更像是一个精确的收纳标签,帮你把混乱的信息按位置和结构归类。掌握好 ^ 和 $,就像给抽屉加了定位条,东西放得清楚,找起来也快。