正则 分组group


>>> re.sub('(\d+)[a-zA-Z]',r'\1','3a 22b c')  #将匹配的字符串用第一组数据替换,即使用\d+匹配的字符替换。

'3 22 c'


import re


s=r'ht+p://(w{1,3})\.(.*)\.(com)'

mo=re.compile(s)

ob=mo.search('http://www.python.com') #返回一个MatchObjec 对象

print ob
print ob.groups() #以元组形式返回所有的组
print ob.group(0) #默认0,以字符串形式返回所有组
# print ob.group() 等同于print ob.group(0)

print ob.group(1) #返回指定组1的字符串

print ob.start(1) #返回指定组1的开始索引位置
print ob.end(1)   #返回指定组1的结束索引位置 +1
print ob.span(1)  #返回指定组1的开始、结束位置
### Java 正则表达式 `group` 方法使用教程 #### 什么是 `group` 在 Java 的正则表达式处理中,`group` 是指通过括号 `( ... )` 定义的部分模式。这些部分可以被单独提出来用于进一步的操作。每个左括号会创建一个新的捕获组,并按照其出现顺序编号[^1]。 对于每一个成功的匹配项来说: - 整个输入序列总是作为第0组被捕获; - 接下来的每一对圆括号内的子表达式依次对应后续的整数索引位置上的捕获组。 #### 获特定分组的内容 为了访问某个具体的分组内容,在获到 Matcher 实例之后,可调用该实例下的 `group(int i)` 函数,其中参数i代表想要得哪一个分组的结果。如果只需要整个匹配串,则可以直接调用无参版本即 `group()` 或者 `group(0)` 来获得全部匹配文本[^4]。 下面给出一段简单的例子展示如何利用 `group` 提 URL 中的不同组成部分: ```java import java.util.regex.Matcher; import java.util.regex.Pattern; public class GroupExample { public static void main(String[] args){ String url = "https://www.example.com/path/to/resource"; // 编译一个能够解析URL结构的正则表达式 Pattern p = Pattern.compile("(http[s]?):\\/\\/(.*?)(:\\d+)?([/].*)?"); Matcher m = p.matcher(url); if (m.find()) { System.out.println("Protocol: "+m.group(1)); // 输出协议 http(s) System.out.println("Domain: "+m.group(2)); // 输出域名 www.example.com System.out.println("Port: "+m.group(3)); // 可能为空 null 如果不存在端口号 System.out.println("Path: "+m.group(4)); // 路径 /path/to/resource } } } ``` 这段程序定义了一个用来识别标准 URI 结构的正则表达式,并将其应用于给定字符串上。当找到符合条件的数据时,便可以通过指定不同的数字来分别出各个组件的信息。 此外需要注意的是,除了基本的功能外,还可以借助命名捕获组的方式让代码更加易读和维护友好。这允许开发者为某些重要的片段赋予有意义的名字而不是仅仅依赖于它们的位置序号。不过这部分特性并未在此处展开讨论。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值