永发信息网

python匹配双引号

答案:2  悬赏:70  手机版
解决时间 2021-01-26 01:07
  • 提问者网友:雪舞兮
  • 2021-01-25 18:52
for i in newToname:
#print i
if re.match(r'(\")',i):
re.sub(r'\s*\"','',i)
# print 'True'
其中newToname为列表[' "Gregg Daileda', 'Jeff Maack', 'Mark Nutter', 'Rachel Steffens', 'Suzanna Strangmeier" , '] 通过这几行程序想把第一个和最后一个人名中“去掉,但经过调试发现if语句没有执行。python新手啊,求各位大神帮忙指点迷津昂,这到底是为什么啊。。有啥解决办法么?。。thxxx
最佳答案
  • 五星知识达人网友:傲气稳了全场
  • 2021-01-25 19:11
说明一下,re.match是从字符串开头匹配的,使用re.search才能从任意位置匹配
而且Python中字符串不能被修改,re.sub并没修改字符串本身,而是返回一个新的字符串,所以即使if语句执行了也不会有任何效果,可以使用下面的代码去掉newTome中字符串的双引号
newToname=[' "Gregg Daileda', 'Jeff Maack', 'Mark Nutter', 'Rachel Steffens', 'Suzanna Strangmeier" , ']
newToname=[re.sub(r'\s*"','',i) if re.search('"',i) else i for i in newToname]
全部回答
  • 1楼网友:孤独入客枕
  • 2021-01-25 19:53
直接进行转义就行: 1. 解决办法如下:gp.calculatefield_management(a, "type", "\""+b+"\""); 2. 在gp中所有的参数,都要以双引号包围的,如果需要转义使用\即可; 3. calculatefield_management是计算shp数据字段的函数,有三个参数: 第一个为要计算字段的shp数据; 第二个为要计算的字段; 第三个为字段的值。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯