正则表达式转义符分组

本文详细介绍了正则表达式中的核心概念,包括元字符的特殊含义,如如何规定字符出现模式;量词的使用,如非贪婪匹配与贪婪匹配的区别及其在字符串处理中的应用;转义符的功能,如何通过来改变字符的特殊含义;以及分组的技巧,包括普通分组、命名分组和无捕获分组的定义与用途。这些知识点对于理解和使用正则表达式进行文本处理至关重要。
摘要由CSDN通过智能技术生成

目录

1.元字符

2.量词

3.转义符

4.分组


1.元字符

元字符是指在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符或表达式,可以使用()括起来指定)在目标对象中的出现模式。

 

2.量词

非贪婪匹配:一个%为非贪婪匹配,即匹配最短结果。%从右到左进行非贪婪匹配,匹配什么呢? 匹配已 .的字符。 那么当然是匹配到了.com 然后执行删除匹配到的字符。结果就是(这里的 “.” 相当于定界符。而“”是通配符)。例如:

非贪婪匹配:
	 现在有一个字符串v以下是非贪婪匹配的shell脚本写法
	    	 v=jpp.shell.com
			echo ${v%.*}
			最终输出的结果为:jpp.shell

贪婪匹配:两个%为贪婪匹配,即匹配最长结果。

	贪婪匹配:
		echo ${v%%.*}
		输出结果:jpp


3.转义符

转义:使用转义符引用单个字符,从而使其表达单纯的字符的字面含义。

shell中的转义符为"\\".

 

#!/bin/bash
 
echo -e "It is a test \n"
echo It is a test
echo -e "\"It is a test\""
read name
echo "$name is a good man"
echo -e "OK! \c"
echo "It is a test"
echo '$name\"'
echo `date`
 
注意:字符串写单引号双引号不写效果都一样
\n换行 \c不换行 \"双引号


4.分组

定义分组的三种形式:

  • (exp) :把括号内的正则作为一个分组,系统自动分配组号,可以通过分组号引用该分组;
  • (?P<name>exp) :定义一个命名分组,分组的正则是exp,系统为该分组分配分组号,可以通过分组名或分组号引用该分组;
  • (?:exp) :定义一个不捕获分组,该分组只在当前位置匹配文本,在该分组之后,无法引用该分组,因为该分组没有分组名,没有分组号,也不会占用分组编号;

1,分组编号

在正则表达式中,分组编号是自动进行的。当使用圆括号表示分组时,从正则表达式的左边开始看,看到的第一个左括号 “(” 表示第一个分组,第二个 "(" 表示第二个分组,依次类推,需要注意的是,有一个隐含的全局分组(分组编号是0),就是整个正则表达式。默认情况下,正则表达式为每个分组自动分配一个组号,规则是:组号从1开始,从左向右,组号依次加1(base+1),例如,第一个分组的组号为1,第二个分组的组号为2,以此类推。

2,分组命名

分组不仅有编号,还能为分组设置名称,在Python中,使用(?P<name>exp)为正则表达式exp设置别名。

3,无捕获分组

无捕获分组没有名称,也没有编号,因此,无法引用无捕获分组,无捕获分组不会占用分组编号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值