正则表达式
来源:互联网 发布:果冻市场数据 编辑:程序博客网 时间:2024/05/20 13:07
看NLP的时候,里面有介绍正规表达式的,为了避免以后忘记,所以在这里做一个总结:
1 语法:
1.1 元字符。
. 匹配除 "/n" 之外的任何单个字符。要匹配包括 '/n' 在内的任何字符,使用象 '[./n]' 的模式。
/ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。 '/n' 匹配一个换行符。序列 '//' 匹配 "/" 而 "/(" 则匹配 "("。
^ 匹配字符串(一下简称ST)的开始位置。
$ 匹配ST的结束位置。
1.2 字符出现次数(一下均用a来代表该字符)
a+ >=1次
a* 任意次数
a? 0或者1次
a{n} a出现n次
a{n,} 至少n次
a{n, m} >=n, <=m 次
1.3 选择
[a1a2] 表示从中选择一个字符
[^a1a2]表示匹配非a1,a2的字符
[A-Z]匹配从'A' 到 'Z'的字符
1.4 分支
a1|a2 匹配a1或者a2,这里a1,a2也可以使正则表达式。
1.5 反向引用 (转自:http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm)
/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。
1.6 其他转义
/t 分页
/w 等同于[0-9a-zA-Z_]
/n 换行
/s 空格
....
2 示例:
e-mail: /w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
还有一个带说明的转载自:http://topic.csdn.net/t/20040721/00/3194150.html
国际域名格式如下:
域名由各国文字的特定字符集、英文字母、数字及“-”(即连字符或减号)任意组合而成, 但开头及结尾均不能含有“-”,“-”不能连续出现 。 域名中字母不分大小写。域名最长可达60个字节(包括后缀.com、.net、.org等)。
/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[/.][a-z]{2,3}([/.][a-z]{2})?$/i;
/内容/i 构成一个不区分大小写的正则表达式;
^ 匹配开始
$ 匹配结束
[a-z] E-Mail前缀必需是一个英文字母开头
([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是空字符,也是匹配的,*表示0个或者多个。
*表示0个或多个前面的字符.
[a-z0-9]* 匹配0个或多个英文字母或者数字
[-_]? 匹配0个或1“-”,因为“-”不能连续出现
[a-z0-9]+ 匹配1个或多个英文字母或者数字,因为“-”不能做为结尾
@ 必需有个有@
([a-z0-9]*[-_]?[a-z0-9]+)+ 见上面([a-z0-9]*[-_]?[a-z0-9]+)*解释,但是不能为空,+表示一个或者为多个。
[/.] 将特殊字符(.)当成普通字符
[a-z]{2,3} 匹配2个至3个英文字母,一般为com或者net等.
([/.][a-z]{2})? 匹配0个或者1个[/.][a-z]{2}(比如.cn等) 我不知道一般.com.cn最后部份是不是都是两位的,如果不是请修改{2}为{起始字数,结束字数}.
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- Cookie与Session小记
- Struts简单例子
- 【ADSP-BF561 EZ-KIT Lite】DMA
- WebBrowser 控件-说明
- 字符串使用前应先判断?
- 正则表达式
- snoopy
- SWT Widgets
- web高效写入模型
- 如需一路持股,看宝塔线
- Java SWT Table Examples
- 面试的一家Java公司的笔试
- SWT 中实现最小化到托盘图标,并只能通过托盘的弹出菜单关闭程序
- 简单类模板