python正则 报错 nothing to repeat at position

本文介绍了一位学习者在使用正则表达式处理特定格式字符串时遇到的问题及解决过程。通过对比两种不同的正则表达式写法,解释了为何一种会报错而另一种能正确提取目标字符串。对于初学者来说,这是一个很好的实践案例,帮助理解正则表达式的匹配规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在学习用正则来处理字符串,要处理的字符串是下面这种的,想用正则的方式,把|隔开的文本提取出来

text="中国|我爱你|国庆大典|大阅兵"

写了一个正则

pattern = r'(^?[^|]+$?)'
result = re.findall(pattern, text)

执行后,就报错了,提示:nothing to repeat at position 

网上查了一下,说是正则的写法错误

我改了下写法

pattern = r'([^]?[^|]+[$]?)'
result = re.findall(pattern, text)

这样改写后,就执行正常,获取到了目标字符串数组了

至于为什么第一种写法不对,暂时还不了解。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值