正则表达式 #
一、基本语法 #
| 字符 | 说明 |
|---|---|
| . | 任意字符 |
| * | 零个或多个 |
| + | 一个或多个 |
| ? | 零个或一个 |
| ^ | 行首 |
| $ | 行尾 |
| [] | 字符集 |
| () | 分组 |
| | | 或 |
二、字符类 #
| 表达式 | 说明 |
|---|---|
| [abc] | a或b或c |
| [a-z] | 小写字母 |
| [A-Z] | 大写字母 |
| [0-9] | 数字 |
| [[:alnum:]] | 字母数字 |
| [[:alpha:]] | 字母 |
| [[:digit:]] | 数字 |
| [[:space:]] | 空白字符 |
三、在Shell中使用 #
bash
#!/bin/bash
# 使用 =~ 匹配
str="hello123"
if [[ "$str" =~ ^[a-z]+[0-9]+$ ]]; then
echo "匹配成功"
fi
# 使用grep
echo "$str" | grep -E "^[a-z]+[0-9]+$"
# 使用sed
echo "$str" | sed -E 's/[0-9]+/NUM/'
四、实战示例 #
bash
#!/bin/bash
# 验证邮箱
is_email() {
[[ "$1" =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ ]]
}
# 验证手机号
is_phone() {
[[ "$1" =~ ^1[3-9][0-9]{9}$ ]]
}
# 验证IP地址
is_ip() {
[[ "$1" =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]]
}
下一步 #
你已经掌握了正则表达式,接下来让我们学习 进程管理!
最后更新:2026-03-27