鱼C论坛

 找回密码
 立即注册
查看: 1148|回复: 2

[已解决]正则表达式分割字符串

[复制链接]
发表于 2022-5-12 18:15:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
要将一串名字'张三;  李四,   王五      。  赵六,  周七'用正则表达式分割开,可以
names='张三;  李四,   王五    。  赵六,  周七'
import re
namelist = re.split(r'\s*[;,*。\s*]\s*',names)
print(namelist)

但是若在名字里再加一点符号:'张三;  李四,,   王五    。  赵六,  周七'
这里只在李四后面多了一个逗号,分割的结果就不一样了,那正则表达式该怎么写呢?
最佳答案
2022-5-12 18:34:43


可以这样:
r'\s*[;,。]{1,2}\s*'

参考代码:
import re

names = '张三;  李四,,   王五    。  赵六,  周七'
namelist = re.split(r'\s*[;,。]{1,2}\s*', names)
print(namelist)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-12 18:34:43 | 显示全部楼层    本楼为最佳答案   


可以这样:
r'\s*[;,。]{1,2}\s*'

参考代码:
import re

names = '张三;  李四,,   王五    。  赵六,  周七'
namelist = re.split(r'\s*[;,。]{1,2}\s*', names)
print(namelist)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-12 19:24:01 | 显示全部楼层
匹配非汉字作为分隔符
import re

names = "张三;  李四,  ! 王五    。  赵六,  周七"
namelist = re.split(r"[^\u4e00-\u9fa5]+", names)
print(namelist)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 08:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表