【问题标题】:Python conditional replacePython 条件替换
【发布时间】:2023-04-09 07:19:01
【问题描述】:

我需要在字符串中进行条件替换。

input_str = "a111a11b111b22"

condition : ("b" + any number + "b") to ("Z" + any number)

output_str = "a111a11Z11122"

也许我需要使用[0][-1] 来删除“b”和“Z”+任何数字

但我找不到它的条件替换。

【问题讨论】:

  • 您是否尝试过使用regex 模块?
  • 欢迎来到 SO! regex 太过分了,re 似乎足够了:re.sub(r"b(\d+)b", r"Z\1", s)?当您说“任何数字”时,是 1 个数字还是 1 个或多个数字?另外,请分享您的尝试。
  • 谢谢!我需要学习正则表达式

标签: python python-3.x replace regular-language


【解决方案1】:

尝试使用正则表达式:

import re
input_str = "a111a11b111b22"
output_str = re.sub(r'[b](\d)',r'Z\1',input_str)
print(output_str)

【讨论】:

    【解决方案2】:

    您应该使用regular expressions。它们真的很有用:

    import re
    input_str = "a111a11b111b22"
    output_str = re.sub(r'b(\d+)b', r'Z\1', input_str) 
    
    # output_str is "a111a11Z11122"
    

    r'b(\d+)b' 正则表达式匹配字母 b,后跟 1 个或多个数字和其他字母 b。括号记住了在句子替换部分(字母Z\1)中进一步使用的数字(和\1)。

    【讨论】:

    • 谢谢!我需要练习正则表达式:0 似乎很难
    猜你喜欢
    • 2018-07-10
    • 2019-05-15
    • 2015-02-02
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多