perl 正则表达式反向引用g代表什么意思
发布时间:2025-05-22 20:39:32 发布人:远客网络
一、perl 正则表达式反向引用\g代表什么意思
\g{name} Named backreference
匹配,前面已经查找过的某段内容,该段内容,是已经被括号包起来的,叫做组group,组的名字叫做name
所以,如果去掉,你这段匹配的语法,就和实际字符串,不吻合了。所以去掉就匹配不了了。
不过要注意的是,如果是去查找字符串,即使去掉,也可以匹配到前面那部分:
关于后向匹配,更详细的解释,感兴趣的话去看:
(正则的含义是一样的,只是写法有点区别而已,所以可以参考的)
【教程】详解Python正则表达式之:(?<=…) positive lookbehind assertion后向匹配/后向断言
(此处不给贴地址,请自己用google搜标题,即可找到帖子地址)
二、":"在正则表达式中什么意思
1、“?:”非获取匹配,匹配冒号后的内容但不获取匹配结果,不进行存储供以后使用。
2、单独的“?”:匹配前面的子表达式零次或一次。
3、当“?”紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少地匹配所搜索的字符串,而默认的贪婪模式则尽可能多地匹配所搜索的字符串。
4、正则表达式是对字符串(包括普通字符(例如,a到 z之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。
5、参考资料来源:百度百科:正则表达式
三、正则表达式
正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
可以匹配除了换行符以外的任意字符。
在任何元字符前加上反斜线,就会使它失去元字符的特殊作用。所以,如果要匹配反斜线,就要用两个反斜线表示。
用来匹配前面的条目零次或多次。
匹配前一个条目一次以上。
匹配前一个条目是可有可无的,前一个条目可以出现一次或者不出现。
指定具体的重复次数。
1、()的作用是对字符串分组。
2、捕获组:用反向引用来引用圆括号中的模式所匹配的文字。
3、反向引用:在反斜线的后面接上数字编号,如:\1、\2。相应的数字表示对应顺序的捕获组。
4、用\g{N}来表示反向引用写法,其中N是想要反向引用的组号。
通常可以读成“或”,意思是要么匹配左边的内容,要么匹配右边的内容。
指的是一组可能出现的字符,通过写在方括号([])内表示,它只匹配单个字符,但可以是字符集中列出的任何一个。
在字符集开头的地方加上脱字符^,来表示这些字符除外。
注:^字符放在不同的位置,有不同的作用。
^在[]内代表“反向选择”,出现在[]外面表示匹配字符串开头。
1、\d:表示任意一个数字的字符集的简写。
\D:即 [^\d],表示匹配非数字字符。
2、\s:表示匹配任意空白符
\S:即[^\s],表示非空白符。
3、\w:表示匹配 [a-z A-Z 0-9 _]字母、数字、下划线。
\W:即 [^\w],表示匹配非单词字符。
4、\b:单词边界锚位,表示匹配任何单词的首位。