【问题标题】:replacing a single charater in a string using regexes in a list使用列表中的正则表达式替换字符串中的单个字符
【发布时间】:2012-01-18 11:22:35
【问题描述】:

问题是我的列表中的名称格式... ['约翰·a,史密斯,威廉·泰尔,雅各布·奥拉姆'] 现在我想更正名字(john a smith 是一个完整的名字),但由于原始数据的格式,结果是这样的......现在使用这种方法,我发现所有这些名字都在使用

ab=re.search((r'[A-Z][a-z]+ [A-Z]\,[A-Z][a-z]+'),zz[uy])

其中 zz[uy] 是字符串的位置...

现在我想要的是,我只想用正确的 john a 格式替换名称。 smith,william tell,jacob oram 在列表中...请帮忙 基本上,我要做的就是用“。”替换 john a, smith 中“a”之后的“,”。并将其放回字符串中

【问题讨论】:

  • 这样的名字也在一个列表中......并且可以在一个字符串中是多个,也可以在任何地方......
  • 与其修改列表,不如看看你是怎么填的?

标签: python regex list


【解决方案1】:

您还没有准确定义如何决定替换哪些逗号,而且考虑到变量名称的方式,可能很难找到始终正确工作的规则。

所以我建议作为第一个近似值来替换逗号当且仅当它跟随一个字母:

>>> import re
>>> a = "John A, Smith, william tell, jacob oram"
>>> re.sub(r"(?<=\b\w),", ".", a)
'John A. Smith, william tell, jacob oram'

警告:\w 也匹配数字和下划线,但它可能比 [A-Z] 更好,否则你会错过非 ASCII 字符的名称)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 2011-10-05
    • 1970-01-01
    • 2015-02-27
    相关资源
    最近更新 更多