[英]Split a string of a specific pattern into three parts
我得到的字符串是这种模式:
[blah blah blah] [more blah] some text
我想将字符串分为三个部分: blah blah blah
, more blah
some text
。
粗略的方法是使用mystr.split('] ')
,然后从前两个元素中删除lead [
。 有没有更好,更高效的方法(需要非常快地对成千上万的字符串执行此操作)。
如果您知道文本将采用这种形式,则可以使用正则表达式提取文本。 为了提高效率,您可以预编译正则表达式,然后在匹配时重复使用它。
prog = re.compile('\[([^\]]*)\]\s*\[([^\]]*)\]\s*(.*)')
for mystr in string_list:
result = prog.match(mystr)
groups = result.groups()
如果您想对正则表达式本身做一个解释,可以使用此工具获得解释。
您可以使用正则表达式拆分要遗漏字符的位置:
>>> import re
>>> s = '[...] [...] ...'
>>> re.split(r'\[|\] *\[?', s)[1:]
['...', '...', '...']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.