【问题标题】:How to go through a string and delete a repeated word with Python如何使用Python遍历字符串并删除重复的单词
【发布时间】:2020-11-19 12:31:47
【问题描述】:

我有这个string

_str = '{"id": sa.Column("id", sa.Integer(), table=None, primary_key=True, nullable=False),"person": sa.Column("person", sa.String(length=40), table=None),"name": sa.Column("name", sa.String(length=40), table=None),"__tablename__": "departments"}'

我想删除每个出现的单词table,但即使使用replace ('table', ''),我也无法删除它。我知道有类似的问题,但在这种情况下它们没有帮助。

【问题讨论】:

  • 你的预期输出是什么?
  • @SreeramTP,类似'{"id": sa.Column("id", sa.Integer(), primary_key=True, nullable=False),"person": sa.Column("person", sa.String(length=40)),"name": sa.Column("name", sa.String(length=40)),"__tablename__": "departments"}',相同的字符串但没有table=None
  • 这个服务器是你的目的吗:_str.replace(", table=None", "") ?

标签: python-3.x string replace


【解决方案1】:

您可以使用re 来代替sub,因为这样可以捕获更广泛的情况,我想说:

import re
_str = '{"id": sa.Column("id", sa.Integer(), table=None, primary_key=True, nullable=False),"person": sa.Column("person", sa.String(length=40), table=None),"name": sa.Column("name", sa.String(length=40), table=None),"__tablename__": "departments"}'

newStr = re.sub(r',{0,1}\s*table=\w+', '', _str)
print(newStr)
# '{"id": sa.Column("id", sa.Integer(), primary_key=True, nullable=False),"person": sa.Column("person", sa.String(length=40)),"name": sa.Column("name", sa.String(length=40)),"__tablename__": "departments"}'

,{0,1}\s*table=\w+ 将匹配这些情况:

  1. , table=abc
  2. table=abc
  3. ,table=abc

【讨论】:

    猜你喜欢
    • 2011-12-09
    • 2014-08-05
    • 1970-01-01
    • 2021-06-19
    • 2013-08-11
    • 2021-09-29
    • 1970-01-01
    • 2021-12-10
    • 2021-09-04
    相关资源
    最近更新 更多