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

比如我想分割a=f1(`MAX(b,0.0,1.0)+0.5);我要把这句指令分成af1`MAXb0.01.00.5c++中使用tokenizer类可以很轻松的实现用py... 比如我想分割
a = f1(`MAX(b, 0.0, 1.0) + 0.5);
我要把这句指令分成
a f1 `MAX b 0.0 1.0 0.5
c++中使用tokenizer类可以很轻松的实现
用python如何实现?
展开
 我来答
ddtghost
2009-11-11 · TA获得超过482个赞
知道小有建树答主
回答量:422
采纳率:0%
帮助的人:575万
展开全部
import re
str="a = f1(`MAX(b, 0.0, 1.0) + 0.5);"
print re.split('[ ()+=;]+',str)

这样会多出一个'',可以把最后一个字符串去掉:
print re.split('[ ()+=;]+',str)[:-1]
mad4alcohol
2009-11-11 · TA获得超过203个赞
知道小有建树答主
回答量:260
采纳率:100%
帮助的人:264万
展开全部
回楼主。
在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

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

参考资料: http://docs.python.org/library/tokenize.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式