正则表达式学习总结——通俗易懂

含义理解
(1)主要用来对字符串操作进行处理相关的问题。
(2)一把使用的方式是复杂的字符串用正则表达式,简单的字符串用string自带
(3)用来描述字符串的特征。
元字符
注意:要想学会使用正则表达式,以下这些是必须要理解和记忆的元字符,以及所表示的含义。
如下:
(1)“.” :符号 点 表示除了换行符“\n”以外的取任意  单个  字符。
例子列举说明:
列举符合正则表达式 a.b  的字符串情况
ab, a b,aab,axb,a2b 
以上几组字符串均正确,包括 ab中间是空格也可以,但  唯独  ab 中间不能是换行或者a\nb

(2)“[]” :该字符组符号 表示在字符组中罗列出来的字符任意取 单个
例子列举说明:
列举符合正则表达式 a[xyz]b 的字符串情况
axb,ayb,azb
以上几组字符组均是正确的。

(3)“-” 表示范围;否则就表示一个普通的字符。
例子:a[a-zA-Z]b
该表达式中:
a-z 表示26个小写字母
A-Z 表示26个大写字母
0-9 表示10个数字
a[a-zA-Z]b 的含义就是:字符组符号“[]”中,可以任取一个 大写 或 小写 的
字母(52个大小写字母中的一个)
夹在ab中间所构成的 三个字符的字符串。
如:
axb,ayb,aab,aAb,aBb,aZb 
等以上几组字符都是正确的,其他的还有很多,相信理解之后爱好学习的你能够列出很多。

附加理解学习:
a[a-zABXY]b 表示从a到z的26个小写母和A,B,X,Y字母中任意选取一个字母,
夹在ab中间,构成三个字符组成的字符串。
如:aab,acb,aAb,aXb,aYb 等都是正确的。

以下情况就不举例只表述了:
a[a-z A-Z]b :表示 a-z和A-Z外加一个 空格(一定要注意哦!!) 任意取一个字符,
放在ab中间,组成三个字符的字符串。

a[a-zA-Z0-9]b :表示 从56个大小写字母中和0-9的10个数字中任选一个字符,
放在ab中间,构成三个字符的字符串。
a[a-zA-Z0-9王张]b :表示 从56个大小写字母汇总和0-9的10个数字中,外加
两个中文字符“王,张”任选一个字符,放在ab中间构成三位字符的字符串。
a[-a-z]b :表示从a-z的26个小写字母中 和字符“-”(注意:此时该字符放在前面就
表示普普通通的一个字符) 任选一个字符,放ab中间构成三个字符的字符串。

a[.xyz]b :表示从 x,y,z 和字符 “.”(注意:此时就表示一个普普通通的字符点) 中
任意取一个字符,放在ab中间 构成三个字符的字符串。

a\.b :表示把字符“.” 用转义字符“\” 转义成一个普普通通的点。

(4)“|” :表示“或”的意思。
   “()” :表示“改变优先级”或者“提取组”的意思。
例子:
a(x|y)b :表示的字符串要么是axb,要么是ayb。
a|food :表示的字符串是 a或者food(一定要注意不是aood或food)。
(a|f)ood :表示的字符串是aood 或者food,这里加了“()”后就改变了优先级。

(5)
“^” :表示标记字符串的开头。
“$” :表示标记字符串的结尾。
例子:
^hl :表示字符串必须以 “hl” 为开头。
uu$ :表示字符串必须以“uu” 为结尾。

^王.. :表示姓名为:王某某(注意字符“.”不是换行符)
a[^xyz]b :特别注意,当字符“^”放在字符组符号“[]”中,表示 取反 的意思。
即:除了x,y,z以外的任意一个字符,但不能为空字符。
如:
ab,axb,ayb,azb 为错误的,aob,amb,anb 均是正确的。

(6)
a.*b  : 注意字符“*”表示限定前面的字符可以出现 0次或多次。
如:aab,a0b,axb,aYb,ab 均是正确的。
(a.)*b  : 表示字符“a.”组成的字符串可以出现0次或多次。
如:b,aab,ababb,acacb,ayayb,aAaAb均是正确的。
a.+b :表示字符“.”所代表的字符至少要出现一次。
如:ab是错误的,amb,a9b,aaab,a8888b 等都是正确的。

(7)“?” 表示可出现0次或1次,也表示贪婪模式。
如: a.?b
ab, axb,a#b 都是正确的,axyb是错误的(出现大于1次)。

(8)“{8}” 表示字符出现的固定次数。
如:
[0-9]{8} 表示0-9范围之间的10个数字连续出现8次。
[0-9]{4,} 表示0-9范围之间的10个数字连续出现大于等于4次。
[0-9]{2,5} 表示0-9范围之间的10个数字连续出现大于等于2次,且小于等于5次。
例子:h[0-9]{3,5}
h123,h1234,h12345均表示正确,但h1,h12 等都不正确。

(9)“\d” :表示0-9中的任意一个数字
注意:
0-9 :只表示10个半角字符。
\d :半角和全角数字字符都包含。
[0-9]+ :表示不限定数字的个数。
[0-9]{1,4} :表示数字的个数在大于等于1且小于等于4个之间的范围。

(10)“\D” :表示除了0-9之外的所有其他字符(即:非数字)。

(11)“\w” :表示等同于 [a-zA-Z0-9]。
(12)“\W” :表示除了[a-zA-Z0-9]之外的所有字符。
(13)“\s” :表示所有不可见的字符(即 空格,tab,回车换行\r\n)。
(14)“\S” :表示除了\s 不可见字符以外的所有可见字符。
(15)“\b” :表示单词边界。
(16)
[\s\S],[\d\D],[\w\W] 
三个表达式都表示:任意单个字符。

说明:
(1) 转载请注明本博客,尊重劳动成果。
(2) 如有不当之处欢迎评论指正。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值