使用re.sub(),如何将微博数据“@xx”替换成“@...”
本帖最后由 linlone 于 2014-08-06 14:46 编辑data = "@t @bb @nn:@tt:@oo @xy"
ddata2 = re.sub(ur'(?<=@)(.+?)(?=[ |:])', '...', data)
print ddata2以上语句执行之后,输出:@... @... @...:@...:@... @xy最后那个xy没有替换成“...”,如何解决呢?
ddata2 = re.sub(r'(?<=@)[^ :]+', '...', data)改成这样。 本帖最后由 linlone 于 2014-08-06 15:23 编辑
回复 2# zerostudy
牛,搞定了
另外:data = "@t@bb @nn//@tt:@oo:@xy"
ddata2 = re.sub(ur'(?<=@)[^@ ::/]+', '...', data)
print ddata2输出:@...@... @...//@...:@...@...为什么倒数第二个@中的全角“:”在输出中丢失了呢?
我期望输出:@...@... @...//@...:@...:@... ddata2 = re.sub(r'(?<=@).*?(?=:| |/|:|@)', '...', data)还是改成你第一个的那样。估计[]里面只接收acs码的字符,要是宽字符,应是要用\x 这种方式。 回复 4# zerostudy
改成这样就ok了:data = "@t@bb @nn//@tt:@oo:@xy"
ddata2 = re.sub(r'(?<=@)[^@ ::/]+', '...', data)
print ddata2 re.UNICODE ? :em14::em14: 本帖最后由 linlone 于 2014-08-06 20:09 编辑
data = "@bb @李欣毅V-香舍网”资和“你的"
ddata2 = re.sub(r'(?<=@)[^ “]+', '...', data)
print ddata2
输出:@--- @---“你的
我期望输出:@--- @---”资和“你的
这个问题如何解决呢
回复 7# linlone
解决了,原来是“”写反了。下面这样就可以了:data = "@bb @李欣毅V-香舍网”资和“你的"
ddata2 = re.sub(r'(?<=@)[^ “”]+', '...', data)
print ddata2
页:
[1]