fledgling 发表于 2022-5-12 18:15:36

正则表达式分割字符串

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

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

Twilight6 发表于 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)

hrpzcf 发表于 2022-5-12 19:24:01

匹配非汉字作为分隔符
import re

names = "张三;李四,! 王五    。赵六,周七"
namelist = re.split(r"[^\u4e00-\u9fa5]+", names)
print(namelist)
页: [1]
查看完整版本: 正则表达式分割字符串