正则表达式(Regular Expressions,简称 RegEx)是一个强大的工具,用于匹配字符串中的模式。在此列举一些常用的正则表达式及其解释:
目录
1)匹配中国大陆电话号码(如:138-1234-5678 或 13812345678):
2)匹配不包括特定字符的字符(例如:匹配除 "a" 和 "b" 之外的字符):
一、 常用的正则表达式及其解释
1、匹配数字
1)匹配一个数字:
\d
\d
:匹配一个数字,等同于[0-9]
。
2)匹配多个数字:
\d+
+
:表示匹配前面的字符 1 次或多次。
3)匹配精确长度的数字(例如:匹配 3 位数字):
\d{3}
4)匹配数字范围(例如:匹配 3 到 5 位数字):
\d{3,5}
2、 匹配字母
1)匹配一个字母:
[a-zA-Z]
[a-zA-Z]
:匹配任何一个英文字母,不论大小写。
2)匹配多个字母:
[a-zA-Z]+
+
:表示匹配一个或多个字母。
3、匹配空格
1)匹配空格字符:
\s
\s
:匹配任何空白字符,包括空格、制表符、换行符等。
2)匹配非空格字符:
\S
\S
:匹配非空白字符。
4、匹配特定的字符串或模式
1)匹配邮箱地址:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
^
:表示开始。$
:表示结束。[a-zA-Z0-9._%+-]
:匹配用户名。@[a-zA-Z0-9.-]+
:匹配@
后面的域名部分。\.[a-zA-Z]{2,}
:匹配.com
、.org
等顶级域名。
2)匹配URL:
^https?:\/\/[a-zA-Z0-9.-]+(?:\/[^\s]*)?$
https?
:匹配http
或https
。:\/\/
:匹配://
。[a-zA-Z0-9.-]+
:匹配域名部分。(?:\/[^\s]*)?
:匹配可选的路径部分。
5、匹配日期格式
1)匹配日期(YYYY-MM-DD)格式:
\d{4}-\d{2}-\d{2}
\d{4}
:匹配 4 位年份。\d{2}
:匹配 2 位月份和日期。
6、匹配电话号码
1)匹配中国大陆电话号码(如:138-1234-5678 或 13812345678):
^1[3-9]\d{9}$
1[3-9]
:以 1 开头,第二位是 3 到 9 之间的数字。\d{9}
:后面跟着 9 位数字。
7、匹配特定字符
1)匹配特定字符(例如:匹配 "a" 或 "b"):
[ab]
2)匹配不包括特定字符的字符(例如:匹配除 "a" 和 "b" 之外的字符):
[^ab]
8、匹配单词边界
1)匹配完整的单词:
\bword\b
\b
:单词边界,表示匹配“word”这个完整的单词。
9、匹配数字范围
1)匹配 1 到 100 之间的数字:
^([1-9]|[1-9][0-9]|100)$
([1-9]|[1-9][0-9]|100)
:匹配 1 到 9、10 到 99 或 100。
10、替换字符串中的内容
在一些编程语言(如 JavaScript 或 Python)中,你可以使用正则表达式进行替换操作
1)将字符串中的空格替换为下划线:
/ /g
/ /g
:匹配所有空格并替换。
11、捕获分组和反向引用
1)捕获分组(将匹配的部分提取出来以供后续引用):
(\d{3})-(\d{4})
(\d{3})
和(\d{4})
是捕获分组。- 在替换时,你可以使用
\1
和\2
来引用这两个分组。
12、常用修饰符
g
(全局搜索):查找字符串中的所有匹配项。i
(忽略大小写):进行不区分大小写的匹配。m
(多行搜索):使^
和$
匹配行的开始和结束。
二、示例 - 以匹配并替换邮箱为例
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
const email = "example@example.com";
if (emailRegex.test(email)) {
console.log("有效的邮箱地址");
} else {
console.log("无效的邮箱地址");
}
三、总结
以上是一些常见的正则表达式及其应用。正则表达式非常强大,但也有其复杂性,尤其是在处理不同类型的文本时。掌握正则表达式能极大地提高咱们处理文本的效率哦!