我想拆分一个字符串,例如:
CS ID=123 HD=CT NE="HI THERE"
一个看起来像的列表
['CS', 'ID=123', 'HD=CT', 'NE=HI THERE']
shlex.split() 函数执行此操作,但速度非常慢。我需要找到一种非常快速的方法来执行此操作,可能使用 python 正则表达式。任何帮助表示赞赏。谢谢!
所以我没有预料到在 Jython 中使用 re 模块时几乎和 shlex 模块一样慢。有谁知道如何在没有 re 模块的情况下使用 Java 正则表达式或其他一些巧妙的方式来做到这一点?
请您参考如下方法:
不确定您是否真的想去掉 HI THERE 部分的引号,这个包括双引号。
>>> import re
>>> x = '''CS ID=123 HD=CT NE="HI THERE"'''
>>> re.findall("""\w+="[^"]*"|\w+='[^']*'|\w+=\w+|\w+""", x)
['CS', 'ID=123', 'HD=CT', 'NE="HI THERE"']
在 HI THERE 部分没有引号
>>> map(''.join,re.findall("""(\w+=)"([^"]*)"|(\w+=)'([^']*)'|(\w+=\w+)|(\w+)""", x))
['CS', 'ID=123', 'HD=CT', 'NE=HI THERE']
