正则表达式学习笔记

正则表达式学习笔记:

1.    /b:表示单词的开头或者结尾,可能是空格、标点符号或者换行,但是/b不匹配其中的任何一个,这是指代这些元素中的任一个位置。
    示例:/bhi/b:查找文本中所有的“hi”单词,但是不包括him、history等字样
1.1    ^:匹配字符串的开始,特指一个段落的起始。
1.2    $:匹配字符串的结束。特指一个段落的结尾,这两个都是/b的子集。


重复:
2.    *:表示*前面的内容重复出现任意多次,".*"连在一起就表示任意数量的不包含换行符的字符。
    示例:/bhi/b.*/bLucy/b:先是一个hi,然后任意多个字符(但不能有回车),最后是一个单独的单词Lucy。
2.1    +:同样表示数量,但是+必须是1次或以上,不包括0次,而*是指任意数量,包括0次重复。
2.2    {n}:数量控制,前方的字符精确重复n次。
2.3    {n,m}:数量控制,前方的字符重复n到m次,n<=m。
2.4    ?:重复0次或1次。


3.    .: 表示任意字符,不包含回车换行。

4.    /d:匹配任意的数字(0,1,2……9)
    示例:0/d/d-/d{7}:查找以0开头,后两个是数字,然后是一个连字符"-",接着是7个数字的字符串,如:025-8224110。

5.    /s:匹配任意的空白符,包括空格、制表符(tab键)、换行符、中文全角空格等。

6.    /w:匹配字母、数字、下划等。
    示例1:/ba/w*/b:匹配以字母"a"开头,然后是任意多个任意字符不包括空格等空白符,然后一个单词结束符。其意义就是以a开头的所有单词。
    示例2:/b/w{6}/b:匹配正好是6个字符长度的单词。

7.    []:任意匹配一个方括号中存在的字符。
    示例:[abc]/w{4}/b:以a、b、c中的任意一个字符为开头,后面有4个字母的单词。

反义
8.    /D  /S  /W   /B  这些元字符的大写形式分别表示他们表示的集合的反义。
    示例:/D:表示不是数字的所有字符,如:abced
8.1    [^x]:表示不是x字符的所有字符
8.2    [^xyz]:表示不是x、y、z中任一种的字符

9.替换
    "|":使用"|"符号可以实现逻辑或运算,配合小括号"()"的使用,可以实现不同条件的或运算。


10分组
    "()":用括号包围住已经实现的表达式,可以方便的继续使用重复、替换等操作。
    示例:/b(/w+/b/s+)/1+/b:将第一次出现的括号表达式用/1表示,可以匹配go go go

自学到这里已经非常不错了,下面继续研究正则表达式的高级属性

断言:
    (?=express)这是一种假定条件,可以放在表达式的后方,已验证前方的字符后面的表达式是否为express,但是并不包含后方的express。
    示例:/b/w*(?=ing/b):取得后缀为ing的所有单词的前缀。
    
    (?<=express)前置断言,放于表达式首部,已验证字符串前方的表达式是否符合express,同样也不包含express本身。
    示例:(?<=/bre)/w*/b:取得所有前缀为re的单词的后面部分

注释:
    (?#)以这种形式来注释正则表达式。
    示例:2[0-4]/d(?#200-249)

懒惰模式匹配
    *:匹配最多的字符
    *?:匹配最少的字符
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值