繁体   English   中英

将特定模式的字符串分成三部分

[英]Split a string of a specific pattern into three parts

我得到的字符串是这种模式:

[blah blah blah] [more blah] some text

我想将字符串分为三个部分: blah blah blahmore 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM