正则表达式(Regular Expression,简称 regex 或 regexp)是一种用于匹配字符串中字符组合的模式。正则表达式可以用于搜索、编辑或处理文本。它们在许多编程语言和工具中都有广泛的应用。
README.md
匹配中文字符:[\u4E00-\u9FA5]
匹配双字节字符(包括汉字在内):[^\x00-\xFF]
中国身份证号码, 最后一位数字或X:d{17}[d|X|x]
中国手机号码:1[3-9]d{9}
中国固定电话:d{3}-d{8}|d{4}-d{7}
中国邮政编码:[1-9]d{5}(?!d)
邮箱验证:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配 URL:[a-zA-z]+://[^s]*
匹配 IPv4 地址:d+.d+.d+.d+
基本语法
普通字符:匹配自身。例如,正则表达式 abc 匹配字符串 "abc"。
元字符:具有特殊含义的字符。例如:
- .:匹配除换行符以外的任意单个字符。
- ^:匹配字符串的开始。
- $:匹配字符串的结束。
- *:匹配前面的子表达式零次或多次。
- +:匹配前面的子表达式一次或多次。
- ?:匹配前面的子表达式零次或一次。
- |:表示或运算,例如 a|b 匹配 "a" 或 "b"。
- ():用于分组和捕获。
- []:匹配括号内的任意字符,例如 abc 匹配 "a"、"b" 或 "c"。
- {}:匹配前面的子表达式指定次数,例如 a{2} 匹配 "aa"。
- 转义字符:使用反斜杠 来转义元字符,使其失去特殊含义。例如,. 匹配一个点号。
- g:全局匹配。
- i:忽略大小写。
- m:多行匹配
- s:单行匹配
- u:Unicode 匹配
一些用法
- 匹配数字:d
- 匹配非数字:D
- 匹配空白字符:s
- 匹配非空白字符:S
- 匹配单词字符:w
- 匹配非单词字符:W
- 匹配换行符:
- 匹配制表符:
- 匹配回车符:
- 匹配任意字符:sS
- 匹配任意字符:wW
- 匹配任意字符:dD
- 匹配任意字符:^
- 匹配中文字符:一-龥
- -:表示范围,例如 0-9 匹配 0 到 9 的数字。
- ?:非贪婪匹配,例如 a+? 匹配 "a"、"aa"。
- (?=exp):正向先行断言,匹配 exp 前面的位置。
- (?!exp):负向先行断言,匹配后面不是 exp 的位置。
- (?<=exp):正向后行断言,匹配 exp 后面的位置。
- (?<!exp):负向后行断言,匹配前面不是 exp 的位置。
- :匹配单词边界。
- B:匹配非单词边界。
- x|y:匹配 x 或 y。