您当前的位置:首页 > 互联网教程

python 正则表达式 groups和group有什么区别

发布时间:2025-05-19 13:05:00    发布人:远客网络

python 正则表达式 groups和group有什么区别

一、python 正则表达式 groups和group有什么区别

1、group和groups是两个不同的函数。

2、一般,m.group(N)返回第N组括号匹配的字符。

3、而m.group()== m.group(0)==所有匹配的字符,与括号无关,这个是API规定的。

4、m.groups()返回所有括号匹配的字符,以tuple格式。

5、m.groups()==(m.group(0), m.group(1),...)

6、你的+号在括号外面。括号最多匹配到一个字符,要么是a,要么是c,这个python引擎匹配的是末尾的c。

7、而m.group()== m.group(0)这个返回的是整个匹配的字符串"abc".

8、关于捕获型括号在正则表达式里的用法,参见相关文档。

二、java 正则表达式matcher.group()匹配多种结果的规则

首先回答你第一个疑问,java正则默认贪婪匹配的,你括号中是.*,这样的表达式表示匹配0个或多个字符串,那么,正则肯定给你匹配到结尾那地方为止,解决方法:1、若具体知道乘车之间由多少个字符的话,用.{0,3},这样去表达,表示乘车之间最少0个字符,最多3个字符;2、搜一下非贪婪匹配怎么写

现在回答你第二个问题,如果你要要出所有的匹配字符串,建议使用while(mat.find()){String reuslt= mat.group()};这样的方式去找,除此之外那些方法我也是用的莫名奇妙的,不懂就不说了

三、正则表达式“或“的使用

正则表达式,又称规则表达式。是计算机科学的一个概念。

正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。

正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

检查字符串是否符合正则表达式中的规则,有一次不匹配,则返回false。如:

String reg="[a-zA-Z]\\d?";//次表达式表示字符串的第一位只能是字母,第二位只能是数字或没有boolean flag=str.matches(reg);//返回结果为true。

所谓切割,即是按一定的规则将字符串分割成多个子字符串,如:

String str="zhangsan,lishi,wangwu"。

String reg=",";//表示以逗号作为切割符。

String[] arr=str.split(reg);//返回结果为{“zhangsan”,"lisi","wangwu}。

即将字符串中符合规则的字符替换成指定字符,如:

String str="sfhjhfh136hjasdf73466247fsjha8437482jfjsfh746376"。

str.replaceAll("\\d{3,}","#");//表示将连续出现三个或三个以上的数字替换成“#”。

参考资料来源:百度百科-正则表达式