Python分割字符串 有无和c++中的tokenizer同样功能的用法?

2025-12-17 21:09:12
推荐回答(2个)
回答1:

import re
str="a = f1(`MAX(b, 0.0, 1.0) + 0.5);"
print re.split('[ ()+=;]+',str)

这样会多出一个'',可以把最后一个字符串去掉:
print re.split('[ ()+=;]+',str)[:-1]

回答2:

回楼主。
在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

这是我临时照抄的一个例子