在字符串中提取某个字符之后的内容或者某两个字符之间的内容

内容提取

假定一个字符串:

[2024年9月25日09:40:41] “the string need to extract.”

单边限制提取

本例中,我们只想提取出”]”后面的内容““the string need to extract.””

import re
string1 = "[2024年9月25日09:40:41] "the string need to extract.""
pattern = r"\\](.+)"
result = re.search(string1, pattern)
# re.search()和re.match()的区别在于,前者是不限制初始位置的,但是后者是被指定为从字符串的头部开始查找
# 此外,re.findall()可以找到所以匹配的子项,并且返回一个列表

这里需要注意的有两点,一是正则表达式的书写,二是使用的re方法。

pattern = r”\](.+)”

r””就是正则表达式的格式,类似输出格式中的f”

第一个字符是\]这个是反斜杠转义],因为在正则中,中括号被赋予了含义,需要转义会单纯的符号。

后面一组字符是(.+), 以组的形式而不是单字符的形式返回符合表达式的一个字符串,也就是这里不返回[”, t, h, e…]而是”"the string need to extract."“如此,括号中.+表示是字符串即可,并且匹配多个。

更多正则表达式的模式,建议找参考书或者菜鸟教程、百科上查询,就我目前的印象,还是书上会写的清楚一些。很明确用法,网上大多笼统而且含糊不清。不过我忘记了哪本书了,是学R还是MATLAB,还是就是Python的参考书里的,记不太清了。所以建议只有一点点哈哈哈。

双边限制提取

本质就是在单边的条件上加上结束条件。

import re
string1 = "[2024年9月25日09:40:41] "the string need to extract.""
pattern = r"\\[(.+)\\]"
result = re.search(string1, pattern)

这样就是找到括号中的内容。

总结归纳

个人觉得,写正则表达式需要试的次数比较多,才能找到你心中满意的表达。但是如果有高效的生产工具,例如小chat,可能会事半功倍哦!

个人博客:https://kecilimu-notion.vercel.app/

个人邮箱:kecilimu@163.com

转载请务必注明出处

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值