python - Split function with multiple delimiters such as ( and ,
问题描述
Anyone help me with multiple delimiters for split function?
For instance, given a string "#1(X,Y)"
, I want to use delimiters such as (, ',', )
to get a set like ('#1', 'X', 'Y')
I have tried re.split(' \\( | , | \\) ', '#1(X,Y)')
but get
['#1', 'X, Y', '']
解决方案
你的例子没有按照你说的做。
>>> s = "#1(X,Y)"
>>> import re
>>> re.split(' \\( | , | \\) ', s)
['#1(X,Y)']
您的字符串不包含任何这些表达式;你可能是说
>>> re.split('\\(|,|\\)', s)
['#1', 'X', 'Y', '']
可以重构为类似
>>> re.split(r'\s*[(,)]\s*', s)
['#1', 'X', 'Y', '']
使用更简单、更优雅和惯用的正则表达式,并允许在分隔符周围使用可选的空格。
没有任何明智的方法可以真正阻止 Python 在与字符串开头或结尾相邻的分隔符之前或之后找到空字符串;可能只是从开头和结尾过滤掉空字符串,或者预处理字符串以在正则表达式匹配之前从开头和结尾删除分隔符。
推荐阅读
- python - 硒python中的日期时间抛出错误
- python - Python GCP 从任何区域获取所有实例
- java - App Engine FilterPredicate 在查询字符串时不返回任何内容
- c# - 如何读取带有图像的word文件
- javascript - Angular 6 只需要多个字段中的一个字段
- python - 使用逻辑回归时的内存错误
- android - Android Oreo:JobService 可以存活多久?
- c# - 在 asp.net 中的分页上维护 Checkbox 的 ViewState
- c - C- 将 realloc 与字符串指针结合
- office-js - 如何仅在内部发布和使用 Office Web 加载项?