码迷,mamicode.com
首页 > 其他好文 > 详细

南瓜不说话(M1)-正则表达式符号

时间:2014-12-24 13:08:29      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

普通字符:普通字符包括字母、数字、汉字、下划线、空格、回车等没有定义的特殊符号;

转义字符:一些书写不变的字符,采用在字符前加”\”的方式实现转义

特殊符号--修饰匹配次数
表达式 作用
{n,} 表达式重复匹配至少n次最多不限次
{n} 表达式重复匹配必须且仅n次
{n,m} 表达式重复匹配至少n次最多m次
* 表达式重复匹配零到无限次
+ 表达式重复匹配一到无限次
? 表达式重复匹配零到一次
技术分享
例子
表达式 可匹配
-?\d+ 匹配一个整数
(-?\d+)(\.\d+)? 匹配一个小数
   
特殊符号--修饰匹配多种字符
表达式 作用
\s 匹配换行、制表、空格等空白字符
\d 匹配一个数字
\w 匹配一个数字、字母或下划线
. 匹配除换行符以外的任意一个字符
      技术分享
例子
表达式 匹配
\d\d 匹配”abc123”,第一次匹配匹配到”12”
a.\d 匹配”aaa10”,第一次匹配匹配到”aa1”
    
特殊符号-匹配字符集
表达式 作用
[]中包含一系列字符 匹配其所包含字符中的任意一个字符
[^]中包含一系列字符 匹配不在其所包含字符中的任意一个字符
例子
表达式 可匹配
[abc7@] 匹配”a”或”b”或”c”或”7”或”@”字符
[^abc7@] 匹配除”a”、”b”、”c”以外的任意一个字符
[f-h] 匹配”f”到”h”之间的任意一个字符
[^A-F0-9] 匹配除”A”到”F”和”0”到”9”之间的任意一个字符
   
特殊符号-具有特定抽象功能的符号
表达式 作用
^ 与字符串开始的地方匹配,不匹配任何字符
$ 与字符串结束的地方匹配,不匹配任何字符
\b 匹配一个单词边界,也就是单词和空格之间的位置,不匹配任何字符

 

例子
表达式 可匹配
^aaa 匹配”x aaa x”时不成功,^要求与字符串开始的位置匹配,只有当aaa位于字符串开始位置时才能匹配,如”aaa  x”,则会匹配成功
aaa$ 匹配”x aaa x”时不成功,$要求与字符串结束的位置匹配,只有当aaa位于字符串结束位置时才能匹配,如”x  aaa”,则会匹配成功
.\b 匹配 "@@@abc" 时,匹配结果是:成功;匹配到的内容是:"@a";匹配到的位置是:开始于2,结束于4
\bend\b 匹配 "weekend,endfor,end" 时,匹配结果是:成功;匹配到的内容是:"end";匹配到的位置是:开始于15,结束于18

 

特殊字符-可影响表达式内部关系
表达式 作用
| 左右两边表达式之间 "或" 关系,匹配左边或者右边
() (1). 在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰
(2). 取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到
例子
表达式 可匹配
tom|jack 匹配”tom and jack”,第一次匹配成功,结果是tom
(go\s*)+ 匹配”let’s go go go”第一次匹配成功,结果是”go go go”
$(\d+\.?\d*) 匹配”$10.9,¥20.5" ”第一次匹配成功,结果是”$10.9”

 

一些通用规则

1表达式中,可以使用 "\xXX" 和 "\uXXXX" 表示一个字符("X" 表示一个十六进制数)

形式 字符范围
\xXX 编号在 0 ~ 255 范围的字符,比如: 空格可以使用 "\x20" 表示
\uXXXX 任何字符可以使用 "\u" 再加上其编号的4位十六进制数表示,如 "\u4E2D"

 

 

2在表达式 "\s","\d","\w","\b" 表示特殊意义的同时,对应的大写字母表示相反的意义

表达式 可匹配
\S 匹配所有非空白字符("\s" 可匹配各个空白字符)
\D 匹配所有的非数字字符
\W 匹配所有的字母、数字、下划线以外的字符
\B 匹配非单词边界,即左右两边都是 "\w" 范围或者左右两边都不是 "\w" 范围时的字符缝隙

 

 

3在表达式中有特殊意义,需要添加 "\" 才能匹配该字符本身的字符汇总

字符 说明
^ 匹配输入字符串的开始位置。要匹配 "^" 字符本身,使用 "\^"
$ 匹配输入字符串的结尾位置。要匹配 "$" 字符本身,使用 "\$"
() 标记一个子表达式的开始和结束位置。
[] 用来自定义能够匹配 ‘多种字符‘ 的表达式。
{} 修饰匹配次数的符号。要匹配大括号,请使用 "\{"和\}"
. 匹配除了换行符(\n)以外的任意一个字符。要匹配小数点本身,使用 "\."
? 修饰匹配次数为 0 次或 1 次。要匹配 "?" 字符本身,使用 "\?"
+ 修饰匹配次数为至少 1 次。要匹配 "+" 字符本身,使用 "\+"
* 修饰匹配次数为 0 次或任意次。要匹配 "*" 字符本身,使用 "\*"
| 左右两边表达式之间 "或" 关系。匹配 "|" 本身,使用 "\|"

南瓜不说话(M1)-正则表达式符号

标签:

原文地址:http://www.cnblogs.com/pumpkinSpeakness/p/4182015.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!