输入:
Some Text here: Java, PHP, JS, HTML 5, CSS, Web, C#, SQL, databases, AJAX, etc.
Run Code Online (Sandbox Code Playgroud)
码:
import re
input_words = list(re.split('\s+', input()))
print(input_words)
Run Code Online (Sandbox Code Playgroud)
工作完美,并返回我:
['Some', 'Text', 'here:', 'Java,', 'PHP,', 'JS,', 'HTML', '5,', 'CSS,', 'Web,', 'C#,', 'SQL,', 'databases,', 'AJAX,', 'etc.']
Run Code Online (Sandbox Code Playgroud)
但是,当添加其他一些分隔符时,如下所示:
import re
input_words = list(re.split('\s+ , ; : . ! ( ) " \' \ / [ ] ', input()))
print(input_words)
Run Code Online (Sandbox Code Playgroud)
它不再被空格分开,我在哪里错了?
预期的支出为:
['Some', 'Text', 'here', 'Java', 'PHP', 'JS', 'HTML', '5', 'CSS', 'Web', 'C#', 'SQL', 'databases', 'AJAX', 'etc']
Run Code Online (Sandbox Code Playgroud)
你应该对正则表达式分裂交替包含所有这些符号:
input_words = re.split('[\s,;:.!()"\'\\\[\]]', input())
print(input_words)
Run Code Online (Sandbox Code Playgroud)
这是对您问题的字面回答。您可能要使用的实际解决方案是在符号的两端都用可选的空格分隔,例如
input = "A B ; C.D ! E[F] G"
input_words = re.split('\s*[,;:.!()"\'\\\[\]]?\s*', input)
print(input_words)
Run Code Online (Sandbox Code Playgroud)
印刷品:
['A', 'B', 'C', 'D', 'E', 'F', 'G']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |