正则表达式入门学习
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了正则表达式入门学习,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2133字,纯文字阅读大概需要4分钟。
内容图文
![正则表达式入门学习](/upload/InfoBanner/zyjiaocheng/1142/e727a681dc8a4ec2ba07af26dc223938.jpg)
\b-元字符,代表单词的开头或结尾,也就是单词的分界处。 \bHi\b 下列未进行说明的都是元字符。
. 匹配除了换行符以外的任意字符。
* 指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配。(不包含换行的字符) \bHi\b.*\bLucy\b
\d 匹配一位数字(0或1或2......或9) 0\d\d-\d\d\d\d\d\d\d\d
- 不是元字符 ,只匹配它本身。
避免重复 0\d{2}-\d{8} {2}({8})指前面\d必须连续重复匹配2次(8次)。
\s 匹配任意的空白符,制表符(Tab),换行符,中文全角空格。
\w 匹配字母或数字或下划线或汉字
\+ 和*类似,匹配重复1次或更多次 而*是重复任意次数(可以为0次)
^ 和$都匹配一个位置 和\b类似
^匹配你要用来查找的字符串的开始,$匹配结尾。 ^\d{5,12}$ 匹配5到12位的数字
{5,12} 表示重复次数不少于5次,不能多于12次
例子: \ba\w*\b 以字母a开头的单词,先是某个单词开始处(\b),然后是字母a ,然后是任意数量的字母、数字(\w*),最后是单词结束处(\b)
\d+ 匹配一个或更多连续数字
\b\w{6}\b 匹配刚好6个字符的单词
字符的转义:
如果是想查找元字符本身的话,如查找 . 或者 * 时,就得使用\来取消字符的特殊意义。
\. --. \* -- * \\ --\ 查找本身
例子: deerchao\.net 匹配deerchao.net C:\\Windows 匹配 C:\Windows
重复:
* 重复0次或者更多次
+ 重复1次或者更多次
? 重复0次 或者1次
{n} 重复n次
{n,} 重复n次或更多
{n,m} 重复n到m 次
例子:Windows\d+ 匹配Windows后面跟着1个或更多数字
^\w+ 匹配的一行的第一个单词或整个字符串的第一个单词
字符类
[aeiou] 匹配方括号中的任意一个字符
[.?!]匹配的是.或?或者!
[0-9] 代表含义与\d 完全一致 一位数字
[a-z0-9A-Z] 也等同于\w
\(?0\d{2[) -]?\d{8} 首先是一个转义字符/( 出现0次或1次(?) ,然后是1个0 后面有2个数字,然后是)空格-中的其中一个,它出现1出或不出现,最后是8个数字
分支条件
|或
0\d{2}-\d{8}|0\d{3}-\d{7} 匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号码或者是4位区号,7个本地号码。如:010-12345678 和0376-2233445
\(?0\d{2}\)?[- ]?\d{8}|0\d{2}[- ]?\d{8}
\d{5}-\d{4}|\d{5} 与 \d{5}|\d{5}-\d{4} 是完全不同的
匹配分支条件会从左往右的测试每个条件,如果满足某个分支的话,就不会去再管其他条件了。
分组:
用小括号来指定子表达式,也叫分组
(\d{1,3}\.){3}\d{1,3} 这是一个简单的IP地址匹配表达式,\d{1,3}匹配1到3位数字,(\d{1,3}\.){3}匹配三位数字加上一个英文句号重复三次,最后再加上 一个一到三位的数字(\d{1,3})
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
反义:
有时需要查找不属于某个能简单定义的字符类的字符,比如像查找除了数字以外,其他任意字符都行的情况,这时需要用到反义。
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除X以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
例子:
\S+ 匹配不包含 空白字符的字符串
<a[^>]+> 匹配用尖括号括起来的以a开头的字符串
后向引用:用于重复搜索前面某个分组匹配的文本。
\b(\w+)\b\s+\1\b 可以用来匹配重复的单词,像 go go 或者kitty kitty 。这个表达式首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字(\b(\w+)\b),这个单词会被捕获到编号为1的分组中,然后是1个或几个空白符
(\s+),最后是分组1中捕获的内容(也就是前面匹配的那个单词)(\1)
指定子表达式的组名,要指定一个子表达式的组名,要使用这样的语法:(?<Word>\w+)(或者把尖括号换成‘ 也行):
(?‘word‘\w+)),这样就把\w+的组名指定为word了,要反向引用这个分组捕获的内容,你可以使用\k<word>,所以上一个例子也可以写成:\b(?<word>\w+)\b\s+\k<word>\b
原文:http://www.cnblogs.com/wangxh92/p/3726635.html
内容总结
以上是互联网集市为您收集整理的正则表达式入门学习全部内容,希望文章能够帮你解决正则表达式入门学习所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。