需要根据空格和()拆分字符串。 比如说:
输入字符串:
if condition or (condition-1 or condition-2) then print"
输出应分为:
'if', 'condition', 'or', '(condition-1 or condition-2)', 'then', 'print'.
当我执行str.split()
时,即使()中的值也会根据空格进行拆分。
答案 0 :(得分:1)
也许你可以检查paranthesis和介于两者之间的东西,然后将该部分复制到另一个变量并从原始变量中删除它。然后只需拆分第一个变量并将两个变量加在一起。为此,我将使用re模块。 python documenting和Automate the boring stuff with python。
我就这样做了:
import re
statement = input(":")
bracketsearcher = re.compile(r'\(\w+\s\w+\)')
bracketplaces = bracketsearcher.findall(statement)
rest = bracketsearcher.sub('',statement)
print (bracketplaces)
rest = rest.split(" ")
print (rest)
答案 1 :(得分:1)
瞧
s = "if condition or (condition-1 or condition-2) then print and (this)"
my_list = list()
while (("(") in s):
my_list.append(s[s.find('(') : (s.find(')')+1)])
s = (s[ : (s.find('('))]) + (s[s.find(')')+1 : ])
my_list= my_list + (s.split(' '))
print(my_list)