我有一个像这样的python字符串:
str = "--jvm 100 --cpu 200"
我如何获得两个部分?
'--jvm 100'
'--cpu 200'
我使用了str.split('--')
并得到了一些不理想的东西:
''
'jvm 100'
'cpu 200'
我试过正则表达式,但无法弄明白。
答案 0 :(得分:1)
为什么不再添加--
input = "--jvm 100 --cpu 200"
values = ["--%s" % item for item in input.split("--") if item]
结果:[' - jvm 100',' - cpu 200']
答案 1 :(得分:1)
假设您正在尝试从所有参数中获取值,您应该使用参数解析包来执行此操作。
https://docs.python.org/2/howto/argparse.html
它们已经设计了所有解析规则,因此您所要做的就是专注于从中获取值。在许多情况下,arg解析工具将允许您指定应如何键入值,因此数字将转换为整数,]
转换为布尔值。
true/false
以上只是一个示例,因此您需要对其进行调整以满足您的需求。
答案 2 :(得分:1)
使用正则表达式,您可以这样做:
re.findall(r'--.*?(?=\s+--|$)', str)
答案 3 :(得分:1)
>>> import re
>>> re.findall(r'--\w+ \d+', str)
['--jvm 100', '--cpu 200']