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日

悬赏问题

  • ¥20 @microsoft/fetch-event-source 流式响应问题
  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False