第七章 子表达式

学习目标:
如何运用字表达(subexpression)的概念对表达式进行分组和归类。
 
7.1 什么是字表达
非换行符空格: (non-breaking space)
 
7.2 子表达式
子表达是一个更大的表达式的一部分;
把一个表达式划分为一系列子表达式的目的是为了把那些子表达式当做一个独立元素来使用;
子表达式必须用(和)括起来。
 
备注:(和)是元字符,如果需要匹配(和)本身,就必须使用它的转义序列\(和\)
 
例子:用正则表达式来查找IP【并没有完全匹配正确的IP地址】
(\d{1,3}.\){3}\d{1,3}
 
7.3 字表达式的嵌套
子表达式允许嵌套。
事实上,子表达式允许多重嵌套,这种嵌套层次理论上没有限制,但在实际工作中应该遵循适可而止的原则。
 
备注:把必须匹配的情况考虑周全并写出一个匹配结果符合预期的正则表达式很容易,但把不需要匹配的情况也考虑周全并确保它们都将被排除在匹配结果以外往往要困难的多。
 
基本思路:在构造一个正则表达式的时候,一定要把你想匹配什么和你不想匹配什么详尽的定义清楚。
 
例子:用正则表达式来查找合法的IP地址
(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])).\){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))
 
一层嵌套:(\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])
二层嵌套:((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))
三层嵌套:(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])).\)
 
备注:在分析各个子表达式的时候,应该按照先内后外的原则来进行而不是从第一个字符开始一个字符一个字符的去尝试。
 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/mumulin99/p/9838547.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值