Python被多个分隔符分隔,包括空格?

时间:2019-05-27 10:40:07

标签: python python-3.x

输入:

Some Text here: Java, PHP, JS, HTML 5, CSS, Web, C#, SQL, databases, AJAX, etc.

代码:

import re

input_words = list(re.split('\s+', input()))
print(input_words)

做得完美,并回报我:

['Some', 'Text', 'here:', 'Java,', 'PHP,', 'JS,', 'HTML', '5,', 'CSS,', 'Web,', 'C#,', 'SQL,', 'databases,', 'AJAX,', 'etc.']

但是当添加其他一些分隔符时,就像这样:

import re

input_words = list(re.split('\s+ , ; : . ! ( ) " \' \ / [ ] ', input()))
print(input_words)

它不再被空格分开了,我在哪里错了?

预期的支出是:

['Some', 'Text', 'here', 'Java', 'PHP', 'JS', 'HTML', '5', 'CSS', 'Web', 'C#', 'SQL', 'databases', 'AJAX', 'etc']

3 个答案:

答案 0 :(得分:4)

您应该在包含所有这些符号的正则表达式 上进行拆分:

input_words = re.split('[\s,;:.!()"\'\\\[\]]', input())
print(input_words)

这是对您的问题的字面回答。您可能要使用的实际解决方案是在符号的两端进行拆分,例如在任意一端加上

input = "A B ; C.D   ! E[F] G"
input_words = re.split('\s*[,;:.!()"\'\\\[\]]?\s*', input)
print(input_words)

打印:

['A', 'B', 'C', 'D', 'E', 'F', 'G']

答案 1 :(得分:1)

将表达式写在方括号内,如下所示。希望对您有帮助

import re



input_words = list(re.split('[\s+,:.!()]', input()))

答案 2 :(得分:0)

使用nltk模块进行单词标记化

#!/usr/bin/python3
import nltk

sentence = """At eight o'clock on Thursday morning
... Arthur didn't feel very good."""
words = nltk.tokenize.word_tokenize(sentence)
print(words)

输出:

  

[“在”,“八”,“钟”,“开”,“星期四”,“早晨”,“ ...”,   'Arthur','did','n't','feel','very','good','。']