【问题标题】:How can we skip some part in the string using regex我们如何使用正则表达式跳过字符串中的某些部分
【发布时间】:2022-06-15 20:46:49
【问题描述】:

我有一个字符串 = "[~620cc13778d079432b9bc7b1:Hello WorldGuest]"

我想替换部分“**[~620cc13778d079432b9bc7b1:**Hello WorldGuest]”

我只想要“:”之后和“]”之前的部分。中间部分的最大长度为 64 个字符

“~”后面的部分是 24 个字符的 UUID。

所以结果字符串将是“Hello WorldGuest”

我正在使用以下正则表达式:

r"(\[\~[a-z0-9]{24}:)(?=.{0,64})"

但这只是匹配字符串直到“:”,我也想匹配结尾的“]”。

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    给定:

    >>> import re
    >>> st = "[~620cc13778d079432b9bc7b1:Hello WorldGuest]"
    

    两种方式:

    >>> re.sub(r'[^:]*:([^\]]*)\]',r'\1',st)
    'Hello WorldGuest'
    >>> st.partition(':')[-1].rstrip(']')
    'Hello WorldGuest'
    

    【讨论】:

      猜你喜欢
      • 2017-08-23
      • 2017-07-24
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 2017-04-17
      相关资源
      最近更新 更多