正则表达式基础

原文章:Today is a sunny day
用正则表达式"sunny"即可匹配到其中的“”sunny"。
1. "^“和”$"
限定在开头,还是开始的例子,表达式改成“^sunny”那么就不会匹配到“sunny”;同理,表达式“day”可以匹配到,但是改成“^day”不会匹配到,而对于“$”,表示表达式在结尾才可以,例如"sunny$“不可以匹配,但是"day$“可以匹配到。表达式 ^$ 对于发现空行(一行开始就是本行结束的那种)很有用。
2."[]"
用来匹配一个或者多个字符,比如"sun[na]y"可以匹配"sunny”,也可以匹配"sunay”(这是随手写的,应该不是个单词,仅用来举例),再比如"100[789]6",可匹配"10076",“10086”,“10096”.特别的,“^”符号在"[]“表示不想匹配后面跟着的内容,比如 “100[^012345679]6”,只可以匹配"10086”。
3."-"
"-" 用来指出一个字符范围,比如[123456789]可以用[1-9]代替,[a-z]就代表这一位26个英文字母(没数错吧)都可以。[0-9a-zA-Z]是合法的,这个中括号代表的是一位字符的类别。
4.“.”
这个符号可以匹配任何字符,“sunn.“可以匹配"suuny”,“sunna”,“sunn7”,“sunn&”,任何字符都是可以的。但是在[]中”.“仅可以匹配”."(因为[]仅限定一位字符的类型,如果"."还是可以匹配任意字符那还要[]限定范围有啥用。还有其他的一些符号在[]中失去特殊含义,后续会提到)
5."|"
“sunny|sunab|254"可匹配"sunny”,“sunab”,“254”
圆括号在这里可以被用来限制备选的范围。"sun(ny|ab)“与"sunny|sunab"作用相同,但是"sunny|sunab"看起来含义更明确。
6."?"
“?“前面紧跟的字符可以有也可以没有,“flavou?r”,可以匹配"flavor”,也可以匹配"flavour”。(在[]中仅表示问号这一字符)
7."+“和”*"
(使用前面说的‘?’的话,相当于”?"前紧贴的字符可以出现0次或一次)。元字符‘+’ 前紧贴的字符出现一次或更多次,而‘*’ 则表示匹配任何次,包括0次。
“go?d"匹配 “gd"和"god”;
“go+d"匹配"god”,“good”,“goood”,“gooood”……
go*d"匹配"gd”,“god”,“good”,“goood”,“gooood”……
8."{}"
‘{最小, 最大}’ 这个元字符序列允许你指定特定项目可以被匹配的最少和最大次数。例如go{1,5}al 可以用来限制我们上面的例子,只匹配1到5次o。同样的{0,1} 其实就等同于一个’?’元字符。
“10{1,2}86"匹配"1086"和"10086”。
9."/"
‘/’ 被用来转换指定的元字符的含义,以便于你可以把它们当成普通字符来匹配。例如,你打算匹配字符’?’或者’/’,你就可以在它们前面加上一个’/’字符,这样它们就被转换成普通字符的含义,就好像这样写:‘/?’ or ‘//’.
10."()"
它被用来捕捉符合它们包围的子表达式的字符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值