轻松掌握正则表达式(3)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/GW_wg/article/details/78309653

二 、匹配一组字符

1、匹配多个字符中的某一个

这里再引入一组字符符号: [ 和 ] (一组中括号):他们的作用是定义一个字符集合。如: [abcdefg] ,这个字符集合在正则表达式中的含义就是匹配 [ 和 ]中的任意一个字母,即匹配abcdefg中的任意一个。

举例如下:

文本:

home.txt
Home.txt

正则表达式:

[Hh]me.txt

结果:

home.txt
Home.txt

[Hh]om.txt 中的字符集合[Hh]的含义是匹配任意一个,即,可以是Home.txt 也可以是home.txt 。 是不是有小伙伴会钻牛角尖了,会想,为什么不是Hhome.txt ? ? ? 这点要注意,字符集合[和]中的内容每次只能匹配一个。比如你可以添加的这样的文本: Hhome.txt 和hHome.txt 。然后正则表达式不变,你看看是什么效果?

2、利用字符区间集合

在使用正则表达式的时候,会使用 到一些字符区间,比如0~9或者a~z、A~Z,通过上面的字符集合的知识。可以这样来定义字符区间:[0123456789] 或[abcdef……z]可以起到定义字符区间的作用,但是在正则表达式中,我们一般不这样写,正确的写法是 [0-9](等价于[0123456789])字母几个的道理也是一样的。

注意: -(连字符)只在 [ 和 ]中才是一个元字符,表示一个字符区间,离开了[ ] -(连字符)值表示一个 普通字符且匹配自身

举例子如下:

文本:

Home.txt
home.txt
Home1.txt
home2.txt
home3.txt
Home0.txt
home4.txt

正则表达式

[Hh]me[0-5].txt

结果:
Home1.txt
home2.txt
home3.txt
Home0.txt
home4.txt

Home.txt和home.txt不满足正则表达式,所以没有被匹配进来。

3、取非匹配

什么叫区非匹配,这就想java中的!一样。就是处了这个表达式,其他的都可以满足。比如: [^0-9] 意思就是除了数字0~9其他的字符都可以匹配

举例如下:

文本:

Home1.txt
home2.txt
home3.txt
Home0.txt
home4.txt
Home5.txt
Home6.txt
home7.txt
home8.txt
Home9.txt

正则表达式:

[Hh]ome[^0-5].txt

结果:

Home6.txt
home7.txt
home8.txt
Home9.txt

注意:
(1) [ 和^ 之间是没有空格的,即^(异或)是紧跟着 [ 的。
(2) 所有的正则表达中都对空格敏感,你输入 \ . (反斜杠加点 )表示对元字符 . 进行转义,但是你如果在反斜杠和点之间加了一个空格,那正则表达式的含义就变成了 匹配文本中的\ 和 “ ”(空格)和任意一个字符了。

总结:

(1)[ 和 ] 表示一个字符集合。可以匹配字符集合中的任意一个字符
(2) 元字符 - (连字符)只能用在 [ ] 中,用在其他地方只表示一个普通的字符,且匹配自身
(3) [0-9]、[a-z]、[A-Z] 等表示匹配一个字符区间中的热议一个字符
(4) 正则表达式对空格敏感 在正则表达式中会将空格当做一个字符来处理。

猜你喜欢

转载自blog.csdn.net/GW_wg/article/details/78309653