- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
总结 x|y:匹配x或者y {n}:这里的n是一个正整数。匹配前面的n个字符。 {n,}:这里的n是一个正整数。匹配至少n个前面的字符。 {n,m}:这里的n和m都是正整数。匹配至少n个最多m个前面的字符。 [xyz]:一字符列表,匹配列出中的任一字符。可以通过连字符-指出一个字符的范围。 总结 \d: 匹配一个数字,等价于[0-9]. \D:匹配任何的非数字,等价于[^0-9]。 \n:匹配一个换行符 \r:匹配一个回车符 \s:匹配一个单个white空格符,包括空格,tab,换行符 \S:匹配除white空格符以外的一个单个的字符 总结 \w:匹配所有的数字和字母以及下划线,等价于[A-Za-z0-9]. \W:匹配除数字、字母外及下划线外的其他字符,等价于[^A-Za-z0-9]. ^:表示匹配的字符必须在最前边 $:与^类似,匹配最末的字符。 第九章 Action传参专题 字符类 只需要在括号里列出它们就可以 ?[aeiou]就匹配任何一个元音字母 ?[.?!] 匹配标点符号(.或?或!)(引文语句通常只以这3个标点结束) ?注意,不需要写成[\.\?!] ?也可以指定一个字符范围: ?[0-9]代表的含义与\d就是完全一致:一位数字 ?[a-z0-9A-Z_]也完全等同\W(如果只考虑英文的话)。 表达式问题 下面是一个更复杂的表达式: \(?0\d{2}[)-]?{8}。 ?这个表达式可以匹配几种格式的电话号码,像(010或022或02912345678等 ?分析:首先是一个转义字符\),它能出现0次或1次,然后是一个0,后面跟着2个数字({2}),然后是)或-或空格中的一个,它出现1次活不出现(?),然后是8个数字(\d{8}).但是,他也能匹配 010(022样的“不正确”的格式。 反义 有时需要查找不属于某个能简单定义的字符类的字符。比如想查找除了数字以外,其他任意字符都可以的情况,这是需要用到反义: 常用的反义代码 \W匹配任意不是字母,数字,下划线,汉字的字符 \S匹配不是任意空白符的字符 \D匹配任意非数字的字符 \B匹配不是单词开头或结束的位置 [^x]匹配除了x以外的任意字符 [^aeiou]匹配除了aeiou这几个字母以外的任意字符 例子:\S+匹配不包含不是空白符的字符串。 a[^]+匹配用尖括号括起来的以a开头的字符串 替换 正则表达式里的替换指的是有几种规则,如果满足其中任意一种规则都应该当成匹配,具体方法是用|把不同的规则分隔开。 0\d{2}-\d{8}|0\d{3}-\d{7} ?匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010,一种是4位区号(0376-2233445)。 ?\(0\d{2}\)[-]?{8}|0\d{2}[-]?\d{8} ?匹配3位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔。 ?请用替换|把这个表达式扩展成也支持4位区号的。 使用替换时顺序问题 \d{5}-\d{4}|\d{5}这个表达式用于匹配美国的邮政编码。美国邮编的规则是5位数字,或者用连字号间隔的9位数字。 ?如果改成\d{5}\d{5}-\d{4}的话,那么就只会匹配5位的邮编(以及9位邮编的前5位)。 ?原因是匹配替换时,将会从左到右地测试每个分枝条件,如果满足了某个分枝的话,就不会去管其他的替换条件了。 ?Windows98|Windows2000|WindowsXP ?替换不仅仅能用于两种规则,也能用于更多种规则。 分组 如果想要重复一个字符串怎么办? 可以用小括号来指定子表达式(也叫做分组),然后可以指定这个子表达式的重复次数,也可以对子表达式进行其它的一些操作。 (\d{1,3}\.){3}\d{1,3}是一个简单的IP地址匹配表达式。 ?分析:\d{1,3}匹配1到3位的数字,(\d{1,3}\.){3}匹配3位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后在加上一个一到三位的数字(\d{1,3}). 匹配IP地址 但是,它也将匹配256.300.888.999这种不可能存在的IP地址(IP地址中每个数字都不能大于255)。 ?如果能使用算术比较的话,或许能简单地解决这个问题,但是正则表达式中并不提供关于数学的任何功能 ?所以只能使用冗长的分组,选择,字符类来描述一个正确的IP地址: ?((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) 后向引用 使用小括号指定一个子表达式后,匹配这个子表达式的文本可以在表达式
文档评论(0)