Python——re.search().group()

import re
a = "123abc456"
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0)   #123abc456,返回整体
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1)   #123
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(2)   #abc
print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(3)   #456
  1. 正则表达式中的三组括号把匹配结果分成三组

    • group() 同group(0)就是匹配正则表达式整体结果
    • group(1) 列出第一个括号匹配部分,group(2) 列出第二个括号匹配部分,group(3) 列出第三个括号匹配部分。
  2. 没有匹配成功的,re.search()返回None
### Python内置`re`模块的功能与使用 #### 导入`re`模块 为了利用`re`模块所提供的功能,需先将其导入到程序中。这可以通过简单的语句实现: ```python import re ``` #### `re`模块的主要函数及其用途 - **findall** 函数可以查找字符串中所有与指定模式相匹配的内容,并以列表形式返回这些匹配项。 - **search** 方法在整个字符串内搜索第一个符合给定模式的位置;一旦找到即停止继续寻找并返回一个Match对象表示位置信息,如果没有发现任何匹配,则返回None[^4]。 - **match** 只会尝试从字符串起始处开始匹配特定模式,成功时返回对应的Match实例,失败则给出None作为结果。这意味着它不会考虑位于输入序列其他部分可能存在的潜在匹配情况。 - **fullmatch** 要求整个目标串完全吻合所定义的模式才能算作有效匹配,否则就认为是没有成功的配对过程发生,同样地,在这种情况下也会得到None的结果值。 - **sub** 和 **subn** 这两个命令都用来执行基于正则表达式的替换操作。“sub”的作用是在源文本里按照提供的模板把符合条件的部分替换成新的内容;而“subn”除了完成同样的任务外还会额外统计实际发生的更改次数,最终形成由修改后的文字以及变更计数值构成的一对儿数据结构——也就是所谓的元组类型[(new_string, count)](https://docs.python.org/zh-cn/3/library/re.html#re.sub)。 - **split** 根据设定好的分割规则将原始字符串切分成多个片段,默认情况下是以空格为界限来进行拆解工作,当然也可以自定义更加复杂的分隔符样式来满足不同的需求场景下的应用要求。 下面是一些具体的例子展示如何运用上述提到的各种特性: ```python pattern = r'\d+' # 定义一个简单整数识别模式 text = "There are 12 apples and 34 oranges." matches = re.findall(pattern, text) print(matches) # 输出: ['12', '34'] result_search = re.search(r'(\w+) (\d+)', text) if result_search: print(result_search.groups()) # 输出: ('apples', 'and') matched_at_start = re.match('T.*? ', text) print(matched_at_start.group() if matched_at_start else None) # 输出: There entire_match = re.fullmatch('.*', text) print(entire_match is not None) # True modified_text = re.sub(r'\b(apple|orange)s\b', lambda m: m.group().upper(), text) print(modified_text) # 将apple和oranges转换成大写 splitted_words = re.split('\W+', text) print(splitted_words) # 按照非字母字符切割单词 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值