正则表达式 -入门

正则表达式是一种用于描述字符排列和匹配模式语法规则的表达式,它可以用来匹配、查找、替换字符串。正则表达式的内容包括以下几个主要部分:

  1. 字面量字符:包括字母、数字、标点符号等,表示自身的字符。
  2. 特殊字符:具有特殊含义的字符,如 .*+ 等。
  3. 字符集合:用方括号 [ ] 包围的一组字符,表示匹配其中的任意一个字符。
  4. 量词:用来指定匹配次数的字符,如 * 表示零次或多次,+ 表示一次或多次,? 表示零次或一次。
  5. 边界匹配:用来匹配字符串的开头或结尾,如 ^ 表示字符串的开头,$ 表示字符串的结尾。
  6. 分组和捕获:使用小括号 ( ) 进行分组,并且可以在匹配之后捕获匹配到的内容。
  7. 转义字符:用来匹配特殊字符本身的字符,如 \ 可以转义特殊字符。

除了上述内容外,正则表达式还涉及到各种元字符、修饰符、断言等概念,这些内容共同构成了正则表达式的语法和功能。通过合理地组合这些内容,可以构建出丰富和灵活的字符串匹配规则。

元字符有以下:

  • .   匹配除了换行符以外的任意字符。

  • \s 代表任意空白符(换行符,制表符,空格)

  • \S 匹配任意非空字符串

  • \b 匹配单词边界,匹配单词的开头和结尾。

  • \B 匹配一个非单词边界

  • \d 匹配一个数字,等价于[0-9]

  • \D 匹配一个数字,等价于[^0-9]

  • \w 匹配一个单字字符(字母、数字或者下划线)等价于[A-Za-z0-9]

  • \W 匹配一个非单字字符。等价于[^A-Za-z0-9]

量词有以下:

  • * 匹配任意次,.*连在一起就意味着任意数量的不包含换行的字符。等价于{0,}
  • + 匹配前面一个表达式1次或者多次。等价于 {1,}。
  • ? 匹配前面一个表达式0次或者1次。等价于 {0,1}。
  • {n} 匹配n次
  • {n,} 匹配最少n次
  • {n,m} 匹配n到m次
  • x(?=y) 匹配'x'仅仅当'x'后面跟着'y'.这种叫做正向肯定查找
  • x(?!y) 匹配'x'仅仅当'x'后面不跟着'y',这个叫做正向否定查找

方括号:查找某个范围内的字符

  • [abc]查找方括号之间的任何字符。
  • [^abc]查找任何不在方括号之间的字符。
  • [0-9]查找任何从 0 至 9 的数字。
  • [a-z]查找任何从小写 a 到小写 z 的字符。
  • [A-Z]查找任何从大写 A 到大写 Z 的字符。
  • [A-z]查找任何从大写 A 到小写 z 的字符。
  • [adgk]查找给定集合内的任何字符。
  • [^adgk]查找给定集合外的任何字符。
  • (red|blue|green)查找任何指定的选项。

修饰符

常见用法为:

  • i:不区分大小写地匹配字符。
  • g:全局匹配,即匹配所有符合条件的字符串,而不仅限于第一个符合条件的字符串。
  • m:多行模式,即在多行文本中匹配每一行的开头和结尾,而不是整个文本的开头和结尾。
  • s:单行模式,即将整个文本视为一行,使点号 . 匹配包括换行符在内的任意字符。
  • u:启用 Unicode 模式,使正则表达式支持 Unicode 字符集。
  • y:粘附匹配模式,即从上一次匹配结束的位置开始匹配
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值