lzyshijune 发表于 2014-10-07 22:03

问个问题 python给原来的字符串加东西再替换

现在我有一个文本文件内容如下:
{北京 : 101010100,海淀 : 101010200,朝阳 : 101010300,顺义 : 101010400,怀柔 : 101010500,通州 : 101010600,昌平 : 101010700,延庆 : 101010800,丰台 : 101010900,石景山 : 101011000,大兴 : 101011100,房山 : 101011200,密云 : 101011300,门头沟 : 101011400,平谷 : 101011500,八达岭 : 101011600,佛爷顶 : 101011700,汤河口 : 101011800,密云上甸子 : 101011900,斋堂 : 101012000,霞云岭 : 101012100,上海 : 101020100,闵行 : 101020200,宝山 : 101020300,川沙 : 101020400,嘉定 : 101020500,南汇 : 101020600,金山 : 101020700,青浦 : 101020800,松江 : 101020900,奉贤 : 101021000,崇明 : 101021100,陈家镇 : 101021101,引水船 : 101021102}
我要把它变成像这样的效果:
{'北京' : 101010100,'海淀' : 101010200,'朝阳' : 101010300,'顺义' : 101010400,'怀柔' : 101010500,......'引水船' : 101021102}
也就是里面的所有中文加''号,想要用正则表达式去做,请问要怎么做,re.sub可做简单替换,要怎么样才能实现我说的效果???

lzyshijune 发表于 2014-10-08 11:21

自己动手,丰衣足食,用\1可破之

ssfjhh 发表于 2014-10-08 11:35

本帖最后由 ssfjhh 于 2014-10-08 11:45 编辑

In : d = '{北京 : 101010100,海淀 : 101010200,朝阳 : 101010300,顺义 : 101010400,怀柔 : 101010500,通州 : 101010600,昌平 : 101010700,延庆 : 101010800,丰台 : 101010900,石景山 : 101011000,大兴 : 101011100,房山 : 101011200,密云 : 101011300,门头沟 : 101011400,平谷 : 101011500,八达岭 : 101011600,佛爷顶 : 101011700,汤河口 : 101011800,密云上甸子 : 101011900,斋堂 : 101012000,霞云岭 : 101012100,上海 : 101020100,闵行 : 101020200,宝山 : 101020300,川沙 : 101020400,嘉定 : 101020500,南汇 : 101020600,金山 : 101020700,青浦 : 101020800,松江 : 101020900,奉贤 : 101021000,崇明 : 101021100,陈家镇 : 101021101,引水船 : 101021102}'
In : re.sub('[\u4e00-\u9fa5]+', "'\g<0>'", d)
Out: "{'北京' : 101010100,'海淀' : 101010200,'朝阳' : 101010300,'顺义' : 101010400,'怀柔' : 101010500,'通州' : 101010600,'昌平' : 101010700,'延庆' : 101010800,'丰台' : 101010900,'石景山' : 101011000,'大兴' : 101011100,'房山' : 101011200,'密云' : 101011300,'门头沟' : 101011400,'平谷' : 101011500,'八达岭' : 101011600,'佛爷顶' : 101011700,'汤河口' : 101011800,'密云上甸子' : 101011900,'斋堂' : 101012000,'霞云岭' : 101012100,'上海' : 101020100,'闵行' : 101020200,'宝山' : 101020300,'川沙' : 101020400,'嘉定' : 101020500,'南汇' : 101020600,'金山' : 101020700,'青浦' : 101020800,'松江' : 101020900,'奉贤' : 101021000,'崇明' : 101021100,'陈家镇' : 101021101,'引水船' : 101021102}"

ssfjhh 发表于 2014-10-08 11:39

本帖最后由 ssfjhh 于 2014-10-08 11:42 编辑

d.replace(',', ",'",).replace(':', "':")
Out: "{北京 ': 101010100,'海淀 ': 101010200,'朝阳 ': 101010300,'顺义 ': 101010400,'怀柔 ': 101010500,'通州 ': 101010600,'昌平 ': 101010700,'延庆 ': 101010800,'丰台 ': 101010900,'石景山 ': 101011000,'大兴 ': 101011100,'房山 ': 101011200,'密云 ': 101011300,'门头沟 ': 101011400,'平谷 ': 101011500,'八达岭 ': 101011600,'佛爷顶 ': 101011700,'汤河口 ': 101011800,'密云上甸子 ': 101011900,'斋堂 ': 101012000,'霞云岭 ': 101012100,'上海 ': 101020100,'闵行 ': 101020200,'宝山 ': 101020300,'川沙 ': 101020400,'嘉定 ': 101020500,'南汇 ': 101020600,'金山 ': 101020700,'青浦 ': 101020800,'松江 ': 101020900,'奉贤 ': 101021000,'崇明 ': 101021100,'陈家镇 ': 101021101,'引水船 ': 101021102}"正则都不需要,两个replace搞定,你只需要手动在第一个汉字词语”北京“前加一个” ‘ “就可以了。

lzyshijune 发表于 2014-10-08 22:02

本帖最后由 lzyshijune 于 2014-10-08 22:09 编辑

方法一,为什么我的是这样子,这是结果:mrgreen:
{北京 ':' '101010100',海淀 ':' '101010200',朝阳 ':' '101010300',顺义 ':' '101010400',怀柔 ':' '101010500',通州 ':' '101010600',昌平 ':' '101010700',延庆 ':' '101010800',丰台 ':' '101010900',石景山 ':' '101011000',大兴 ':' '101011100',房山 ':' '101011200',密云 ':' '101011300',门头沟 ':' '101011400',平谷 ':' '101011500',八达岭 ':' '101011600',佛爷顶 ':' '101011700',汤河口 ':' '101011800',密云上甸子 ':' '101011900',斋堂 ':' '101012000',霞云岭 ':' '101012100',上海 ':' '101020100',闵行 ':' '101020200',宝山 ':' '101020300',。。。。。}
回复 3# ssfjhh


   

ssfjhh 发表于 2014-10-08 23:27

本帖最后由 ssfjhh 于 2014-10-08 23:27 编辑

回复 5# lzyshijune re.sub('[\u4e00-\u9fa5]+', "'\g<0>'", d)你用的是我的这段代码吗?

我用的Python3.4.1,没有问题。

bskay 发表于 2014-10-09 16:47

这个是 jsion什么的吧.有现成报

johnsilver 发表于 2014-10-11 01:00

页: [1]
查看完整版本: 问个问题 python给原来的字符串加东西再替换