正则表达式的学习与使用

-> 用来做标记, 不在正则表达式范围内
1.作用:
    验证: 对字段进行规则校验
    查找: 在大量数据中查找指定内容
    替换: 找到指定的内容, 并用另一个指定的数据进行替换
2.概念:
    用于描述一组字符串特征的模式,用来匹配特定的字符串。通过特殊字符+普通字符来进行模式描述,从而达到 文本匹配 的工具。
3.限定符:
    ? -> 特殊字符, 会匹配 ? 前面的字符, 这个字符可以是 0 个或 1 个, 例: ab?c
    * -> 特殊字符, 会匹配 * 前面的字符, 这个字符可以是 0 个或多个, 例: ab*c
    + -> 特殊字符, 会匹配 + 前面的字符, 这个字符至少要出现 1 次, 例: ab{2,6}c
    {} -> 特殊字符, 允许输入范围, 表示 {} 前面的字符要出现的次数
    . -> 任意字符, 不包含换行符, 例: .*
    ^ -> 匹配行首, 例: ^a
    $ -> 匹配行尾, 例: a$
4.'或'运算符:
    | -> 例: a (cat|dog)
5.字符类
    [abc]+ -> 要匹配的字符只能是 [] 中的字符
    [a-zA-Z0-9]+ -> 要匹配的字符只能是 26 个大写字母和 26 个小写字母还有 0 到 9 的数字
    [^0-9]+ -> 要匹配除 ^ 后面列出的以外的字符, 包括换行符, ^是 脱字符
    常用的字符类型:
        数字, 空白符, 单词开头, 结尾 ...
6.元字符
    \d -> 数字字符, 等同于 [0-9]
    \w -> 单词字符, 所有的英文字符、数字、下划线
    \s -> 空白符, 包含 Tab(制表符) 加 换行符
    \D -> 非数字字符
    \W -> 非单词字符
    \S -> 非空白字符
    \b -> 单词字符的边界
7.高级概念:
    贪婪匹配
        <.+>
    懒惰匹配
        <.+?>
    捕获
    断言
    递归
    平衡组
    ...
8.实例:
    颜色值匹配: #[a-fA-F0-9]{6}\b
    IP 地址匹配:
        \d+\.\d+\.\d+\.\d+
        改良版: \b((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b
            解析如下:
                前三个数字:
                    第一种可能
                        如果第一位是 25, 第三位只能取 0-5 之间的数字: 25[0-5]
                        如果第一位数字是 2, 第二位只能取 0-4 之间的数字 2[0-4]
                        最后一位可以取 0-9 之间的任意值
                        这三句拼起来就是: 25[0-5]|2[0-4]\d
                    第二种可能
                        如果第一位是 0 或者 1, 最后两位可以取 0-9 之间的任意数字, [0-9], 也可以写成 \d
                    这两种可能拼起来就是: 25[0-5]|2[0-4]\d|[01]\d\d
                    因为 ip 地址的每一部分可以由 三位数字或两位数字或一位数字 构成, 所以第一位数字和第三位数字要加 ? , 也就成了 25[0-5]|2[0-4]\d|[01]?\d\d?
                接下来匹配 . :
                    (25[0-5]|2[0-4]\d|[01]?\d\d?)\.
                    ((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}
                    ((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)
                    \b((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b
9.其他教程推荐
    1. 正则表达式30分钟入门教程 作者: deerchao https://deerchao.cn/tutorials/regex/regex.htm
    2. Regular Expressions Tutorial (英文) https://www.regular-expressions.info/tutorial.html
    3. 10分钟快速掌握正则表达式: https://www.bilibili.com/video/BV1da4y1p7iZ?spm_id_from=333.337.search-card.all.click&vd_source=8677955fc417502e287d0ea2a54527f8
10.不同语言使用正则表达式
    Java: Pattern.matches("指定规则的字符串", "需要校验的字符串"); 返回结果是 boolean 类型
    JavaScript: '指定规则的字符串'.test('需要校验的字符串'); 返回结果是 boolean 类型
11.正则表达式的测试网站
	https://regex101.com/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值