擅长:python、mysql、java
<p>以下是使用正则表达式对任何iterable分隔符的安全方法:</p>
<pre><code>>>> import re
>>> delimiters = "a", "...", "(c)"
>>> example = "stackoverflow (c) is awesome... isn't it?"
>>> regexPattern = '|'.join(map(re.escape, delimiters))
>>> regexPattern
'a|\\.\\.\\.|\\(c\\)'
>>> re.split(regexPattern, example)
['st', 'ckoverflow ', ' is ', 'wesome', " isn't it?"]
</code></pre>
<p><a href="http://docs.python.org/2/library/re.html#re.escape">re.escape</a>允许自动构建模式,并使分隔符顺利转义。</p>
<p>这是一个解决方案,作为您复印粘贴乐趣的函数:</p>
<pre><code>def split(delimiters, string, maxsplit=0):
import re
regexPattern = '|'.join(map(re.escape, delimiters))
return re.split(regexPattern, string, maxsplit)
</code></pre>
<p>如果要经常使用相同的分隔符进行拆分,请像前面描述的那样预先编译正则表达式并使用<a href="http://docs.python.org/2/library/re.html#re.RegexObject.split">^{<cd1>}</a>。</p>