csz9981 2022-05-15 08:55 采纳率: 92.9%
浏览 18
已结题

在re.split(pattern,str1)功能中,4个成功了,1个没成功,请分析下原因?

问题遇到的现象和发生背景

我在体验re.split功能的时候,把同一个str用不同的字符分隔,结果,5个测试中,123都正常输出,但是print('4',list1)没能正常输出,请帮忙找下原因,谢谢。

问题相关代码,请勿粘贴截图
import re

pattern=' '
str1='123 45@678$345*67/890'
list1=re.split(pattern,str1)
print('1',list1)

pattern='@'
str1='123 45@678$345*67/890'
list1=re.split(pattern,str1)
print('2',list1)

pattern='$'
str1='123 45@678$345*67/890'
list1=re.split(pattern,str1)
print('3',list1)

pattern='*'
str1='123 45@678$345*67/890'
list1=re.split(pattern,str1)
print('4',list1)

pattern='/'
str1='123 45@678$345*67/890'
list1=re.split(pattern,str1)
print('5',list1)

print('6',str1.split('$'))


# 1 ['123', '45@678$345*67/890']
# 2 ['123 45', '678$345*67/890']
# 3 ['123 45@678$345*67/890', '']
# 5 ['123 45@678$345*67', '890']
# 6 ['123 45@678', '345*67/890']

运行结果及报错内容

1 ['123', '45@678$34567/890']
2 ['123 45', '678$345
67/890']
3 ['123 45@678$345*67/890', '']
Traceback (most recent call last):
File "D:/我的坚果云/py lianxi/lianxi 1/lianxi1.py", line 6703, in
list1=re.split(pattern,str1)
File "C:\Python37\lib\re.py", line 215, in split
return _compile(pattern, flags).split(string, maxsplit)
File "C:\Python37\lib\re.py", line 288, in _compile
p = sre_compile.compile(pattern, flags)
File "C:\Python37\lib\sre_compile.py", line 764, in compile
p = sre_parse.parse(p, flags)
File "C:\Python37\lib\sre_parse.py", line 924, in parse
p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, 0)
File "C:\Python37\lib\sre_parse.py", line 420, in _parse_sub
not nested and not items))
File "C:\Python37\lib\sre_parse.py", line 645, in _parse
source.tell() - here + len(this))
re.error: nothing to repeat at position 0

我的解答思路和尝试过的方法
我想要达到的结果

pattern=''
str1='123 45@678$345
67/890'
list1=re.split(pattern,str1)
print('4',list1)

用'*',分隔str1

  • 写回答

1条回答 默认 最新

  • Kappuccinno 2022-05-15 09:13
    关注

    因为$和*在正则表达式是有含义的,前者表示匹配末尾字符的意思,后者表示前一个字符重复0至n次(因为没有前一个字符所以报错)所以对于3和4,你需要分别在这两个符号pattern前加入\转义字符,才能达到你的意思

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月23日
  • 已采纳回答 5月15日
  • 创建了问题 5月15日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器