首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不同的分隔符上拆分字符串,但保留一些所述分隔符的输出?(标记字符串)

如何在不同的分隔符上拆分字符串,但保留一些所述分隔符的输出?(标记字符串)
EN

Stack Overflow用户
提问于 2017-04-25 20:54:36
回答 1查看 102关注 0票数 2

更具体地说,我想在任何非alpha-数字字符上拆分一个字符串,但如果分隔符不是空白,我想要对其进行分割。也就是说,对于输入:

代码语言:javascript
复制
my_string = 'Hey, I\'m 9/11 7-11'

我想要:

代码语言:javascript
复制
['Hey' , ',' , 'I' , "'" , 'm', '9' , '/' , '11', '7' , '-' , '11']

没有空白作为列表元素。

我尝试了以下几点:

代码语言:javascript
复制
re.split('([/\'\-_,.;])|\s', my_string)

但产出:

代码语言:javascript
复制
['Hey', ',', '', None, 'I', "'", 'm', None, '9', '/', '11', None, '7', '-', '11']

我如何在没有“不必要”迭代的情况下解决这个问题?

此外,我在转义反斜杠字符方面也有一些困难,因为'\\\\'似乎不起作用,对于如何也解决这个问题,有什么想法吗?

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-25 20:57:32

你可以用

代码语言:javascript
复制
import re
my_string = "Hey, I'm 9/11 7-11"
print(re.findall(r'\w+|[^\w\s]', my_string))
# => ['Hey', ',', 'I', "'", 'm', '9', '/', '11', '7', '-', '11']

Python演示

\w+|[^\w\s]正则表达式匹配1+单词字符(字母、数字、_符号)或单个字符,而不是单词和空格字符。

顺便说一下,要将反斜杠与regex匹配,需要在原始字符串文本( \\ )中使用r'\\',在普通字符串中使用4个反斜杠('\\\\')。建议使用原始字符串文字来定义Python中的regex模式。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43620776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档