【问题标题】:How to find part of string?如何找到字符串的一部分?
【发布时间】:2020-02-12 14:43:52
【问题描述】:

我正在处理一个字符串。我可以找到我需要的字符串部分,但不是全部。我的代码的哪一部分需要更改?

s = "3D(filters:!!(),refreshInterval:(pause:!!t,value:0),time:(from:!%272019-10-01T20:28:50.088Z!%27,to:now))%26_a%3D(description:!%27!%27,filters:!!(),fullScreenMode:!!"

report_time = s[s.find("time:(") + 1:s.find("))")]

我需要的输出:

>>> report_time
'time:(from:!%272019-10-01T20:28:50.088Z!%27,to:now))'

我的输出:

>>> report_time
'ime:(from:!%272019-10-01T20:28:50.088Z!%27,to:now)'

【问题讨论】:

  • 你应该得到的输出是ime:(from:!%272019-10-01T20:28:50.088Z!%27,to:now

标签: python text-search


【解决方案1】:

您将“+1”放在错误的索引上。您需要从第一个 find 位置拾取并在第二个位置过去 拾取额外的右括号。最后一个甚至需要一个 more 字符(感谢 `smac89 捕捉到它)。

report_time = s[s.find("time:("):s.find("))") + 2]

输出:

'time:(from:!%272019-10-01T20:28:50.088Z!%27,to:now))'

【讨论】:

    【解决方案2】:

    也可以使用正则表达式,例如:

    import re
    re.search(r'(time:\(.*\)\))', s).group(1)
    

    说明:group(1) 返回第一组括号的匹配内容。 .* 匹配中间的任何字符。搜索中的括号需要转义。

    输出:

    'time:(from:!%272019-10-01T20:28:50.088Z!%27,to:now))'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多