gpt4 book ai didi

python - 正则表达式分割字符串而不考虑引号中的空格

转载 作者:太空宇宙 更新时间:2023-11-03 18:35:23 30 4
gpt4 key购买 nike

string = 'protein219 Info=Acidfast Name="Mycobacterium   smegmatis" pcp=36789'

我想分割字符串,忽略 ""之间的空格。我正在使用下面的正则表达式来分割行

mystring = [s for s in re.split("( |\\\".*?\\\"|'.*?')", mystring) if s.strip()] 

这给了我结果

['protein219', 'Info=Acidfast', 'Name=' , '"Mycobacterium  smegmatis"', 'pcp=','36789']

预期输出:

['protein219', 'Info=Acidfast', 'Name="Mycobacterium   smegmatis"',' pcp=36789']

请提出您的建议

最佳答案

不要为此使用re.split():

>>> re.findall(r'(?:"[^"]*"|[^\s"])+', string)
['protein219', 'Info=Acidfast', 'Name="Mycobacterium smegmatis"', 'pcp=36789']

说明:

(?:       # Start of non-capturing group
"[^"]*" # Either match a quoted string
| # or
[^\s"] # anything besides spaces or quotes
)+ # End of group, match at least once

关于python - 正则表达式分割字符串而不考虑引号中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21680284/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com