import re
str="a = f1(`MAX(b, 0.0, 1.0) + 0.5);"
print re.split('[ ()+=;]+',str)
这样会多出一个'',可以把最后一个字符串去掉:
print re.split('[ ()+=;]+',str)[:-1]
回楼主。
在tokenize里,
这里有英文的参考文档
import tokenize
import StringIO
s = StringIO.StringIO( '21.3e-5*-.1234/81.7' )
g = tokenize.generate_tokens( s.readline )
for tokenum, tokeval, _, _, _ in g:
if tokenum == tokenize.NUMBER and '.' in tokeval:
result.extend( [( tokenize.NAME, 'Decimal' ),
( tokenize.OP, '(' ),
( tokenize.STRING, repr( tokeval ) ),
( tokenize.OP, ')' )] )
else:
result.append( ( tokenum, tokeval ) )
print result
这是我临时照抄的一个例子