KANIKIG

KANIKIG

just for fun | 兴趣使然 Ph.D. in Engineering|❤️ #NFT $ETH| [Twitter](https://twitter.com/kanikig2)|[Github](https://github.com/KANIKIG)|[Telegram channel](https://t.me/kanikigtech)

正则表达式入门

image

参考:https://deerchao.cn/tutorials/regex/regex.htm

正则表达式是什么#

正则表达式就是记录文本规则的代码。

测试正则表达式#

在线测试工具:wegester

元字符#

代码说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束

:

查找目标正则表达式
hi 后面不远处跟着一个 Lucy\bhi\b.*\bLucy\b
以 0 开头,然后是两个数字,然后是一个连字号 “-”,最后是 8 个数字0\d\d-\d\d\d\d\d\d\d\d 或 0\d {2}-\d {8}
匹配以字母 a 开头的单词\ba\w*\b
1 个或更多连续的数字\d+
刚好 6 个字符的单词\b\w{6}\b
整个字符串是 5 到 12 位数字^\d{5,12}$

字符转义#

例:

查找目标正则表达式
deerchao.cndeerchao\.cn
C:\WindowsC:\\Windows

重复#

代码 / 语法说明
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复 n 次
{n,}重复 n 次或更多次
{n,m}重复 n 到 m 次

例:

正则表达式查找目标
Windows\d+Windows 后面跟 1 个或更多数字
^\w+一行的第一个单词

字符类#

例:

正则表达式查找目标
[aeiou]任何一个英文元音字母
[0-9]一位数字
(?0\d{2}[) -]?\d{8}几种格式的电话号码

分枝条件#

匹配分枝条件时,将会从左到右地测试每个条件,如果满足了某个分枝的话,就不会去再管其它的条件了。

例:

正则表达式查找目标
0\d{2}-\d{8}|0\d{3}-\d{7}三位区号,8 位本地号 或 4 位区号,7 位本地号
\d{5}-\d{4}|\d{5}美国邮编的规则是 5 位数字,或者用连字号间隔的 9 位数字

分组#

可以用小括号来指定子表达式(也叫做分组)

例:

正则表达式查找目标
(\d{1,3}.){3}\d{1,3}简单的 IP 地址匹配
((2[0-4]\d|25[0-5]|[01]?\d\d?).){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)正确的 IP 地址

反义#

代码说明
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了 x 以外的任意字符
[^aeiou]匹配除了 aeiou 这几个字母以外的任意字符

例:

正则表达式查找目标
\S+不包含空白符的字符串
<a[^>]+>用尖括号括起来的以 a 开头的字符串

后向引用#

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。