Learn Some Basic Computer Skills for STEM Freshman

工科类专业-·-入学前5周计算机学习计划">工科类专业 · 入学前5周计算机学习计划

适用对象:计算机基础薄弱但希望提前衔接大学课程的准大学生
学习方向:工科类专业所需的计算机基础知识与技能


📋 修改历史

版本 日期 说明
v1.4 2026-07-11 增加“附录-4:正则表达式入门”
v1.3 2026-07-09 增加“XMind” in “桌面常用软件”
增加“附录-3: CPU Arch & OS”
v1.2 2026-07-04 增加“桌面常用软件”
v1.1 2026-07-02 增加“AI通识学习”
v1.0 2026-06-29 初始版本

📋 总体目标

目标 说明
掌握编程基础 以 C 语言和python为主
掌握Linux基础 以树莓派4为平台,熟悉Linux操作系统
熟悉开发工具链 Git、IDE、命令行等常用工具

💻 所需设备清单

必备设备

设备 规格要求 用途说明
电脑/笔记本 Windows 10/11 系统,8GB+内存 主要学习设备,安装VSCode等工具
树莓派4 4GB 或 8GB 内存版本 Linux学习与开发平台
SD卡 32GB 以上(Class 10 或 U3) 树莓派操作系统存储
树莓派散热套装 散热片 + 风扇(或铝合金外壳) 保证树莓派稳定运行
树莓派电源 5V/3A USB-C 建议使用官方电源适配器
键鼠套装 普通USB键鼠即可 初始配置树莓派时使用
显示器 HDMI接口(或转接头) 初始配置时使用,后续可用SSH

网络设备

设备 用途说明
路由器 提供局域网环境,连接树莓派和电脑
网线(可选) 有线连接更稳定,适合SSH开发

配件参考价格

配件 参考价格
树莓派4 4GB 约 300-400 元
树莓派4 8GB 约 500-600 元
32GB SD卡 约 30-50 元
散热套装 约 20-40 元
官方电源 约 50-80 元
外壳 约 30-100 元

提示:可购买树莓派4入门套装(含外壳、散热、电源、SD卡),京东/淘宝价格约 400-600 元


📅 分周计划

第1周:计算机基础与高效使用

目标:熟悉电脑性能优化、效率工具,为后续编程学习打下基础

日期 学习内容 推荐资源
第1-2天 电脑基础操作:文件管理、磁盘清理、快捷键 哔哩哔哩「电脑基础操作」
第3天 学会使用 Markdown 写作(Typora / VS Code) 哔哩哔哩「Markdown教程」
第4天 常用网络账号注册(Gmail / Apple ID / GitHub / Cloudflare) 各平台官网
第5天 密码管理软件学习(Bitwarden 免费开源) Bitwarden官网
第6天 了解计算机硬件基础(CPU/内存/硬盘/主板) 哔哩哔哩「计算机硬件基础」
第7天 搭一个自己的学习环境(分类文件夹、常用软件安装) 自行摸索

本周成果:完成一份 Markdown 格式的自我介绍


第2周:编程入门 —— C语言(一)

目标:建立编程思维,掌握 C 语言基本语法

日期 学习内容 推荐资源
第1-2天 什么是编程、C语言简介、第一个程序「Hello World」 鱼C工作室
第3-4天 变量与数据类型、输入输出(printf / scanf) 浙大翁恺C语言
第5-6天 条件语句(if / switch)、循环(while / for) 浙大翁恺C语言
第7天 练习:写一个猜数字游戏 自行实践

猜数字游戏需求:

  • 程序随机生成 1~100 的整数
  • 用户通过键盘输入猜测的数字
  • 程序根据猜测给出提示(”太大了” / “太小了” / “恭喜猜中!”)
  • 限制最多猜测 7 次,超出则游戏失败
  • 猜中后显示用户共猜了多少次
  • 支持游戏结束后选择重新开始或退出

本周成果:编写一个完整的猜数字程序

推荐书籍(PDF可在Z-Library下载):

  • 《C Primer Plus》第5/6版
  • 《啊哈C语言》适合完全零基础

第3周:编程入门 —— C语言(二)

目标:掌握函数、数组和指针(指针是C语言核心,也是电类专业重点)

日期 学习内容 推荐资源
第1-2天 函数(定义、调用、参数传递) 浙大翁恺C语言
第3-4天 数组(一维数组、二维数组) 浙大翁恺C语言
第5-6天 指针基础(地址、指针变量、指针与数组) 浙大翁恺C语言
第7天 综合练习:用指针处理数组 洛谷 / Codeforces

本周成果:能理解并使用指针操作数组


第4周:Python基础 + 树莓派4 / Linux入门

目标:拓宽编程视野 + 接触电子信息专业的软件工具

日期 上午(2-3小时) 下午(2-3小时)
第1天 Python环境搭建(Python 3.x / PyCharm) Python基本语法、print、变量
第2天 列表、字典、条件与循环 用Python做简单计算
第3天 树莓派4环境搭建(系统烧录、SSH连接、散热和外壳) 哔哩哔哩「树莓派入门」
第4天 树莓派OS基础(文件系统、远程连接、Vim编辑器) 树莓派官方文档
第5天 Shell基础命令(ls / cd / mkdir / grep / pip / chmod) 哔哩哔哩「Linux常用命令」
第6天 Linux文本处理(cat / grep / sed / awk / 管道) Linux命令练习
第7天 Linux用户权限与进程管理(useradd / sudo / ps / kill) 哔哩哔哩「Linux权限管理」

本周成果:在树莓派上完成SSH远程访问和简单服务器搭建

软件获取渠道:

软件 获取方式
树莓派4 官网或京东/淘宝购买(约300-500元,含外壳散热)
树莓派Imager 官网免费下载
Python 官网免费下载
PyCharm 官网(社区版免费)
VSCode 官网(远程SSH插件支持)

第5周:GitHub + AI工具入门

目标:掌握版本控制工具,学习使用AI辅助编程工具

日期 学习内容 推荐资源
第1-2天 Git版本控制入门(什么是Git、仓库创建) 廖雪峰Git教程
第3-4天 GitHub使用(注册账号、创建仓库、提交代码) GitHub官网
第5-6天 整理前4周的学习笔记和代码(Markdown汇总) 回顾+总结
第7天 常用AI Agent安装与使用(Codex / Reasonix) Codex官网 / Reasonix官网

本周成果:在GitHub上创建个人仓库并提交代码


📚 推荐学习资源汇总

哔哩哔哩(视频学习)

方向 推荐UP主/课程
C语言 浙大翁恺C语言、鱼C工作室
Python 鱼C工作室、小甲鱼Python
树莓派4 / Linux 树莓派官方文档、稚晖君
Git/GitHub 廖雪峰Git教程、GitHub官网
Linux 韩顺平Linux

GitHub 资源

仓库名 内容
awesome-cs-books 计算机经典书籍合集
awesome-courses 全球顶尖大学课程
free-programming-books 免费编程书籍
project-based-learning 项目驱动学习

网站与工具

类型 推荐
刷题平台 洛谷(适合初学者)、LeetCode
编程练习 洛谷、牛客网
文档查询 cppreference(C语言官方文档)
Linux学习 Linuxize、菜鸟教程Linux
AI编程助手 Codex 、Reasonix
AI通识学习 高校“动手学AI”人工智能通识与实践
开发者社区 CSDN、掘金、Stack Overflow(英文)
密码管理 Bitwarden(免费开源)

⚠️ 重要提示

  1. 动手 > 听课:看10遍视频不如亲手写一遍代码,务必保证每天coding时间
  2. 英语很重要:很多优质资料是英文的,建议逐渐适应阅读英文文档
  3. 数学不能丢:电子信息专业对数学要求较高,假期可复习高数/线代
  4. 善用搜索引擎:遇到问题先搜索(Google/必应),再问人
  5. 加入学长群:获取第一手学习经验和软件资源

🎯 5周后预期收获

  • ✅ 能独立编写C语言程序(数组、函数、指针)
  • ✅ 会用Git管理自己的代码
  • ✅ 有自己的GitHub主页
  • ✅ 掌握树莓派4和Linux基础操作
  • ✅ 会使用AI辅助编程工具提升学习效率

祝大学生活顺利!
制定日期:2026年6月29日


附录-1:Windows + VSCode 远程连接树莓派4 开发环境搭建

一、树莓派4 准备工作

1.1 安装树莓派OS

  1. 在Windows电脑上下载 树莓派Imager
  2. 插入SD卡,运行Imager
  3. 选择设备:Raspberry Pi 4
  4. 选择操作系统:Raspberry Pi OS (64-bit)(推荐)
  5. 选择存储卡,点击 烧录
  6. 烧录完成后,将SD卡重新插入电脑

1.2 开启SSH和配置WiFi(无显示器_setup)

在SD卡的 boot 分区根目录下创建两个文件:

文件1:ssh(空文件,无扩展名)

1
# 在boot分区创建空文件ssh

文件2:userconf.txt(设置初始用户)

1
pi:$6$rBoByRjA$WfJdvfad9adfnjE7Efp.nYEQtRjLYfR2nfvRjLYfR2n/

默认用户 pi,密码 raspberry

文件3:wpa_supplicant.conf(配置WiFi)

1
2
3
4
5
6
7
8
9
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="你的WiFi名称"
psk="你的WiFi密码"
priority=1
}

1.3 启动树莓派

  1. 将SD卡插入树莓派
  2. 通电开机,等待约1-2分钟
  3. 登录路由器后台查看树莓派获得的IP地址(如:192.168.1.100)

二、树莓派4 安装gcc和git

2.1 SSH连接树莓派

在Windows PowerShell或CMD中执行:

1
2
ssh pi@192.168.1.100
# 输入密码:raspberry

2.2 更新软件源并安装工具链

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 更新软件包列表
sudo apt update

# 升级已安装软件
sudo apt upgrade -y

# 安装gcc编译器
sudo apt install gcc -y

# 安装git版本控制
sudo apt install git -y

# 验证安装
gcc --version
git --version

2.3 创建开发目录

1
2
3
# 创建C语言练习目录
mkdir -p ~/c-practice
cd ~/c-practice

三、Windows VSCode 远程连接配置

3.1 安装VSCode

  1. 下载 VSCode for Windows
  2. 安装时勾选「添加到PATH」和「通过Code打开」

3.2 安装Remote SSH扩展

  1. 打开VSCode
  2. 按 Ctrl+Shift+X 打开扩展市场
  3. 搜索 Remote - SSH 并安装(由Microsoft提供)
  4. 搜索 C/C++ 并安装(由Microsoft提供)

3.3 配置SSH连接

  1. 按 Ctrl+Shift+P 打开命令面板
  2. 输入 Remote-SSH: Open Configuration File
  3. 选择 ~/.ssh/config
  4. 添加以下内容:
1
2
3
4
Host raspberrypi
HostName 192.168.1.100
User pi
Port 22

3.4 连接树莓派

  1. 按 Ctrl+Shift+P
  2. 输入 Remote-SSH: Connect to Host
  3. 选择 raspberrypi
  4. 输入密码:raspberry
  5. 连接成功后,左下角显示 ><> SSH: raspberrypi

四、在VSCode中编写C语言程序

4.1 创建第一个C程序

  1. 在VSCode中按 Ctrl+O 打开文件夹
  2. 连接到树莓派后,选择 /home/pi/c-practice 目录
  3. 按 Ctrl+N 新建文件,保存为 hello.c
1
2
3
4
5
6
#include <stdio.h>

int main() {
printf("Hello, World!\n");
return 0;
}

4.2 编译运行

在VSCode终端(`Ctrl+``)中执行:

1
2
gcc hello.c -o hello
./hello

4.3 使用Git管理代码

1
2
3
4
5
6
7
8
9
10
11
12
13
# 在树莓派上配置Git
git config --global user.name "你的GitHub用户名"
git config --global user.email "你的邮箱"

# 初始化仓库
cd ~/c-practice
git init
git add hello.c
git commit -m "first commit: hello world"

# 关联GitHub远程仓库(先在GitHub上创建空仓库)
git remote add origin https://github.com/你的用户名/仓库名.git
git push -u origin master

五、常见问题排查

问题 解决方法
SSH连接被拒绝 确认SSH文件存在且树莓派已联网
找不到gcc 执行 sudo apt install gcc 重新安装
VSCode远程卡顿 检查网络延迟,尝试使用有线连接
Git推送失败 确认GitHub账号已添加SSH公钥

六、推荐:VSCode必装扩展(远程端)

在树莓派连接状态下,安装以下扩展提升体验:

  • C/C++ - C语言智能提示和调试
  • Bracket Pair Colorizer - 括号高亮配对
  • vscode-icons - 文件图标美化
  • One Dark Pro - 主题配色

附录-2: 桌面常用软件

序号 类型 软件名称 功能简介 官方网站 是否免费 自启动建议
1 开发工具 VS Code 微软出品的代码编辑器,丰富插件生态 code.visualstudio.com 是 No
2 开发工具 Notepad++ 轻量级代码和文本编辑器,支持多语言高亮 notepad-plus-plus.org 是(开源) No
3 开发工具 Python 通用编程语言 python.org 是(开源) No
4 开发工具 Git 分布式版本控制系统 git-scm.com 是(开源) No
5 开发工具 Meld 可视化文件差异对比和合并工具 meldmerge.org 是(开源) No
6 开发工具 WSL Windows 下的 Linux 子系统 learn.microsoft.com/wsl 是 No
7 开发工具 Warp AI 驱动的现代终端模拟器 warp.dev 部分免费 No
8 开发工具 MobaXterm 增强型远程终端工具(支持 SSH/SFTP/X11) mobaxterm.mobatek.net 部分免费 No
9 开发工具 Claude Code CLI Anthropic 出品的 AI 编程命令行助手 claude.com/claude-code 免费(按 Token 计费) No
10 开发工具 CC Switch Claude Code 模型/API 切换工具 CC Switch 是(开源) Yes
11 效率工具 Everything 极速本地文件和文件夹搜索工具 voidtools.com 是 Yes
12 效率工具 LocalSend 免费开源局域网跨平台文件传输工具 localsend.org 是(开源) No
13 效率工具 FluentCleaner WinUI 3 的 Windows 系统清理工具,支持社区维护的清理规则数据库 builtbybel/FluentCleaner 是(开源) No
14 效率工具 Pixpin 截图、贴图、长截图、OCR文字识别 pixpin.cn 是 Yes
15 效率工具 Ditto 剪贴板管理,保存和快速检索历史记录 ditto-cp.sourceforge.io 是(开源) Yes
16 效率工具 Listary 文件快速搜索和启动工具 listary.com 部分免费 Yes
17 效率工具 Auto Hot Key (AHK) 自动化脚本和快捷键自定义 autohotkey.com 是(开源) Yes
18 效率工具 7-zip 开源文件压缩/解压工具 7-zip.org 是(开源) No
19 效率工具 PDF-Xchange Editor PDF 阅读、编辑和注释工具 pdf-xchange.com 部分免费 No
20 效率工具 Draw.IO 在线流程图和图表绘制工具 drawio.com 是 No
21 办公应用 Obsidian 基于 Markdown 的知识管理和笔记软件 obsidian.md 是(个人) Yes
22 办公应用 Typora 所见即所得的 Markdown 编辑器 typora.io 否 No
23 办公应用 Word 文字处理和文档编辑 microsoft.com/word 否 No
24 办公应用 XMind Mindmap(思维导图)编辑 免费下载 Xmind 思维导图 是(个人部分功能免费) No
25 办公应用 Excel 电子表格和数据分析 microsoft.com/excel 否 No
26 办公应用 PowerPoint 演示文稿制作 microsoft.com/powerpoint 否 No
27 办公应用 Outlook 电子邮件和日历管理 microsoft.com/outlook 部分免费 Yes
28 社交通讯 微信 即时通讯、文件传输 weixin.qq.com 是 Yes
29 社交通讯 飞书 协作办公平台(文档、会议、消息) feishu.cn 是 Yes
30 开发工具 The Silver Searcher (ag) 超快的代码搜索工具,比 grep 更快,支持 .gitignore 规则 github.com/ggreer/the_silver_searcher 是(开源) No

附录-3: CPU Arch & OS

附录-4:正则表达式入门

一、什么是正则表达式

正则表达式(Regular Expression,常缩写为 Regex 或 RegExp)是一种描述文本模式的语言。它不是某一种编程语言,而是一套用于搜索、匹配、提取、替换和校验文本的规则。

例如,普通搜索只能查找固定文本 cat;正则表达式 c[aeiou]t 则可以匹配 cat、cet、cit、cot 和 cut。正则表达式常见于:

  • VS Code、Notepad++ 等编辑器的查找与替换
  • Linux 命令 grep、sed 和 awk
  • Python、JavaScript、Java、C# 等编程语言
  • 日志分析、数据清洗、表单校验和批量修改文件

正则表达式适合处理具有明确规律的文本,但不适合完整解析 HTML、JSON 或复杂程序代码;这些场景通常应使用专门的解析器。

二、最常用的语法

以下语法是多数现代正则引擎都支持的常用部分。表中的“匹配”指字符串中满足规则的内容,而不一定是整个字符串。

语法 含义 示例 可以匹配
abc 普通字符按原样匹配 cat cat
. 除换行符外的任意单个字符(通常如此) c.t cat、c9t
[abc] 字符集合中的任意一个字符 gr[ae]y gray、grey
[^abc] 不在集合中的任意一个字符 [^0-9] 任意非数字字符
[a-z] 指定范围内的一个字符 [A-Za-z] 一个英文字母
\d 一个数字;不同引擎对非 ASCII 数字的处理可能不同 \d\d 42
\w 一个“单词字符”;字符范围随引擎和 Unicode 模式而变化 \w+ hello_2
\s 一个空白字符 A\s+B A B、A\tB
\D、\W、\S 分别是 \d、\w、\s 的反义 \D+ 连续的非数字字符
^ 字符串或行的开头 ^Error 行首的 Error
$ 字符串或行的结尾 ;$ 行尾的分号
\b 单词边界 \bcat\b 独立单词 cat,不匹配 catalog
* 前一项重复 0 次或多次 ab*c ac、abc、abbc
+ 前一项重复 1 次或多次 ab+c abc、abbc
? 前一项重复 0 次或 1 次 colou?r color、colour
{m} 前一项恰好重复 m 次 \d{4} 2026
{m,n} 前一项重复 m 至 n 次 \d{2,4} 12、2026
A|B 匹配 A 或 B cat|dog cat 或 dog
(abc) 捕获分组,将多项视为一个整体并保存匹配结果 (ab)+ ab、abab
(?:abc) 非捕获分组,只分组而不保存结果 (?:ab)+ ab、abab
\1 反向引用第 1 个捕获组 \b(\w+)\s+\1\b the the
\. 转义元字符,匹配字面量 . example\.com example.com

正则中的常见元字符包括:

1
. ^ $ * + ? { } [ ] \ | ( )

要匹配这些符号本身,通常需要在前面加反斜杠。例如 \+ 匹配加号,\( 匹配左括号。

三、从简单例子开始

3.1 查找连续数字

1
\d+

在文本 Room 305, Building 7 中会匹配 305 和 7。其中 \d 表示数字,+ 表示一个或多个。

3.2 校验中国大陆手机号码的基本格式

1
^1[3-9]\d{9}$
  • ^ 和 $ 要求整个字符串都符合规则
  • 1 要求第一位是 1
  • [3-9] 要求第二位是 3 至 9
  • \d{9} 要求后面恰好有 9 位数字

这只能校验基本格式,不能证明号码真实存在,也不代表号段规则永远不变。

3.3 提取日期的各个部分

1
(\d{4})-(\d{2})-(\d{2})

匹配 2026-07-11 后,第 1、2、3 个捕获组分别是 2026、07、11。在替换文本中,不同工具可能使用 $1、\1 或其他写法引用这些组。

3.4 批量交换“姓, 名”

原始文本:

1
2
Zhang, San
Li, Hua

查找:

1
^(\w+),\s*(\w+)$

替换(VS Code / JavaScript 常用写法):

1
$2 $1

结果:

1
2
San Zhang
Hua Li

3.5 用 Python 提取邮箱地址

1
2
3
4
5
import re

text = "Contact: alice@example.com, bob@test.org"
emails = re.findall(r"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}", text)
print(emails)

这里使用 Python 的原始字符串 r"...",可以减少反斜杠的重复转义。这个表达式适合一般文本提取,但不是对电子邮箱标准的完整实现。

3.6 用 grep 筛选日志

1
grep -E '^ERROR|^WARN' app.log

-E 表示使用 POSIX ERE(扩展正则表达式),该命令会输出以 ERROR 或 WARN 开头的行。

四、分组、断言和匹配模式

4.1 捕获组与命名组

圆括号 (pattern) 不仅改变运算范围,还会保存匹配结果。现代引擎通常还支持命名组,但语法并不统一:

1
(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})

上面是 JavaScript、.NET 等引擎常见的命名形式;Python 常写成 (?P<year>\d{4})。

4.2 前瞻与后顾

断言只检查某个位置的前后是否符合条件,不把被检查的文字包含进最终匹配结果。

语法 名称 示例 含义
(?=...) 正向前瞻 \d+(?=元) 匹配后面紧跟“元”的数字
(?!...) 负向前瞻 foo(?!bar) 匹配后面不是 bar 的 foo
(?<=...) 正向后顾 (?<=¥)\d+ 匹配前面紧跟 ¥ 的数字
(?<!...) 负向后顾 (?<!-)\d+ 匹配前面不是减号的数字

POSIX BRE/ERE 不支持这些断言;某些旧版工具或引擎也不支持后顾。

4.3 常用标志(Flags)

标志 常见名称 作用
i ignore case 忽略英文字母大小写
m multiline 让 ^ 和 $ 匹配每一行的开头和结尾
s dotall / singleline 让 . 也能匹配换行符
g global 查找全部匹配,而不是只找第一个(常见于 JavaScript 和编辑器)
x verbose / free-spacing 允许加入空白和注释以提高可读性;并非所有引擎都支持

标志的开启方式取决于环境,例如 JavaScript 写作 /error/gi,Python 写作 re.findall(pattern, text, re.I)。

五、贪婪与懒惰匹配

*、+、? 和 {m,n} 默认通常是贪婪的,即在仍能完成整体匹配的前提下尽量多匹配字符。

文本:

1
<b>one</b><b>two</b>
  • <b>.*</b> 会从第一个 <b> 一直匹配到最后一个 </b>
  • <b>.*?</b> 使用懒惰量词 *?,会分别匹配两个较短片段
  • <b>[^<]*</b> 明确限制内容不能含 <,通常更清晰

POSIX 正则没有 *? 这种懒惰量词。并且真实 HTML 结构可能嵌套或包含特殊情况,应优先使用 HTML 解析器。

六、主要正则规范和引擎的差别

“正则表达式”并非只有一种完全统一的语法。应先确认当前工具使用哪一种规范或正则引擎。

特性 POSIX BRE POSIX ERE JavaScript Python re PCRE / PCRE2 .NET
常见环境 grep 默认、部分 sed grep -E、awk 浏览器、Node.js Python PHP、部分工具 C#、PowerShell
`+ ? ( )` POSIX BRE 不提供 +、?、` ;分组写作 ( )。GNU grep 另扩展了 +、?、|` 直接作为元字符 支持 支持
\d、\w、\s 不属于 POSIX 标准 不属于 POSIX 标准 支持 支持 支持 支持
POSIX 字符类 [[:digit:]] 支持 支持 通常不支持 不支持 部分模式支持 通常不支持
非捕获组 (?:...) 不支持 不支持 支持 支持 支持 支持
前瞻 不支持 不支持 支持 支持 支持 支持
后顾 不支持 不支持 现代版本支持,细节受实现影响 支持,但通常要求固定长度 支持,能力依版本而异 支持,长度限制与其他引擎不同
命名组 不支持 不支持 (?<name>...) (?P<name>...) 支持多种形式 (?<name>...)
模式内标志 不支持 不支持 通常在 /.../flags 外部指定 (?i) 等 (?i) 等 (?i) 等
匹配原则 左最先、最长匹配 左最先、最长匹配 左最先,按回溯路径决定 左最先,按回溯路径决定 左最先,按回溯路径决定 左最先,按回溯路径决定

几个最容易遇到的差异如下:

  1. grep 的两套语法:grep 默认使用 BRE;需要 +、?、| 和普通括号时,初学者通常使用 grep -E 更直观。
  2. 字符类别并不完全等价:在某些 Unicode 引擎中,\d 能匹配多种语言的数字,\w 也可能包含 Unicode 字母;JavaScript 中的 \d 和 \w 通常更接近 ASCII 范围。若只允许 ASCII,可明确写 [0-9] 和 [A-Za-z0-9_]。
  3. 字符串还会再转义一次:正则本身的 \d 放进某些编程语言的普通字符串时,可能要写成 "\\d"。Python 可使用 r"\d";JavaScript 正则字面量可写 /\d/。
  4. 替换语法不同:VS Code、JavaScript 和 .NET 常用 $1;Python re.sub 常用 \1 或更明确的 \g<1>;具体应查当前工具文档。
  5. 换行符有平台差异:Windows 文本常使用 \r\n,Linux 常使用 \n。需要同时兼容时可写 \r?\n。

七、常用正则速查

需求 示例表达式 备注
只包含 ASCII 数字 ^[0-9]+$ 至少一位数字
简单整数 ^[+-]?[0-9]+$ 可带正负号
简单小数 `^[+-]?(?:[0-9]+(?:.[0-9]*)? .[0-9]+)$`
4 位年份 `^(?:19 20)[0-9]{2}$`
YYYY-MM-DD 外形 `^[0-9]{4}-(?:0[1-9] 1[0-2])-(?:0[1-9]
IPv4 外形 ^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$ 未限制每段必须为 0—255
十六进制颜色 ^#[0-9A-Fa-f]{6}$ 如 #1E90FF
行首或行尾空白 `^\s+ \s+$`
连续重复单词 \b(\w+)\s+\1\b 是否忽略大小写取决于标志
Markdown 标题 ^#{1,6}\s+.+$ 需多行模式

这些表达式主要用于学习和常见数据清洗。日期、IP 地址、URL、邮箱等真实业务规则往往比表面格式复杂;重要数据应在正则匹配后继续进行程序校验。

八、学习和调试建议

  1. 先用普通文本写出要找的固定部分,再逐步替换为字符类和量词。
  2. 使用 ^ 和 $ 区分“整个字符串必须符合规则”与“字符串中存在一段匹配”。
  3. 为每个表达式准备应当匹配和不应当匹配的测试样例。
  4. 长表达式尽量拆分、加注释,或使用引擎支持的 verbose 模式。
  5. 避免无约束地叠加 .*、(.+)+ 等结构,它们可能造成严重回溯和性能问题。
  6. 从网络复制正则后,要确认其目标引擎、字符编码、标志和输入边界,不要直接用于重要数据。

学习正则表达式最有效的方法不是背下所有语法,而是从编辑器的“使用正则表达式查找”开始,针对真实文本不断编写、测试和修改。


Learn Some Basic Computer Skills for STEM Freshman
https://myblog.liyuepeng.cn/2026/06/29/Learn_Some_Basic_Computer_Skills_for_STEM_Freshman/
作者
Li Yuepeng
发布于
2026年6月29日
许可协议