【问题标题】:Python - replacing a pattern in a stringPython - 替换字符串中的模式
【发布时间】:2018-09-17 10:32:52
【问题描述】:

我的字符串包含以下形式的某些单词:

'something1__something2__need'

例如,这是一个包含这些单词的完整字符串:

'bla__wewe__23,sad__fd__sas po__oop__retq2'

我想提取一个新字符串,其中每个单词中只有最后一个子单词,这意味着我的第一个示例变成'need',第二个变成'23,sas retq2'。可能的分隔符是空格和逗号。如果可能,应该没有循环。

【问题讨论】:

  • 您需要准确指定您的情况下的单词边界和“子单词”边界。然后你可以通过正则表达式轻松解决这个问题。
  • @TommyF 单词是逗号和空格之间的所有单词,子单词是 '__' 之间的单词。
  • 单一正则表达式解决方案:_([^_,]+)([,\s]|\Z) 您的结果在第一个捕获组中。将其与您的测试数据一起粘贴到此处以获得解释:regex101.com

标签: python string replace token


【解决方案1】:

使用正则表达式。

演示:

import re

s = ['something1__something2__need', 'bla__wewe__23,sad__fd__sas po__oop__retq2']
for i in s:
    val = re.split(r"([,\s])", i)     #Split by space, comma
    print("".join(j.split("__")[-1] for j in val))    #Split by __ and join by last element in list.

输出:

need
23,sas retq2

【讨论】:

    猜你喜欢
    • 2020-11-22
    • 1970-01-01
    • 2021-05-14
    • 2021-08-13
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    相关资源
    最近更新 更多