繁体   English   中英

如何在两个特殊字符之间找到字符串?

[英]How do I find the string between two special characters?

例如,我需要两个方括号之间的所有内容。 文件1

[Home sapiens]
[Mus musculus 1]
[virus 1 [isolated from china]]

因此,考虑到上面的例子,我需要在第一个和最后一个方括号之间的所有内容。

你可以使用贪婪的正则表达式:

re.search(r'\[(.*)\]', your_string).group(1)

正则表达式是最灵活的选择。

对于另一种方法,您可以尝试字符串的分区rpartition方法:

>>> s = "[virus 1 [isolated from china]]"
>>> s.partition('[')[-1].rpartition(']')[0]
'virus 1 [isolated from china]'

给定您的样本输入,看起来每条线都以括号开头和结尾。 在这种情况下,忘记正则表达式,这是微不足道的:

for line in whatever:
    contents = line.strip()[1:-1]

(我已经添加了strip以防你的线源离开换行符,或者输入中的右括号后面有不可见的空格。如果没有必要,请将其保留。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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