【问题标题】:How can I get some characters around another character in a string?如何在字符串中的另一个字符周围获取一些字符?
【发布时间】:2017-08-23 13:14:19
【问题描述】:

我有:

Lorem Ipsum 只是打印和排版的虚拟文本 行业。 Lorem Ipsum 一直是业界标准的虚拟文本 自 1500 年代以来,当一位不知名的印刷商采用了一种类型的厨房和 争先恐后地制作了一本类型样本书。 Lorem 的标准块 下面为感兴趣的人复制了自 1500 年代以来使用的 Ipsum。 来自“de Finibus Bonorum et Malorum”的第 1.10.32 和 1.10.33 节 西塞罗也按原样复制。

我想搜索1500s,然后选择它周围的一些字符,例如:ever since the 1500s, when an unknown。考虑到我在 for 循环中搜索,试图在一个很长的字符串中找到所有 1500s。所以下一个循环会找到:used since the 1500s is reproduced

我正在使用正则表达式来查找子字符串:

substring = re.findall('1500s', string)

但是如何选择它周围的大约 20 个字符呢?

【问题讨论】:

  • 嗯,.{20} 是任意 20 个字符的表达式
  • 你要的是this吗?

标签: python regex string


【解决方案1】:

正如 cricket_007 所说,您可以尝试使用 .{20} 作为正则表达式模式的书挡。

substring = re.findall('.{0,20}1500s.{0,20}', s)

【讨论】:

  • 当搜索字符串显示得太靠近文本的开头或结尾时,这会失败;我会改用.{0,20}
【解决方案2】:
 r"(.{20})?(1500)(.{20})?" g

这也会在字符串的开头/结尾搜索 "1500"。我将它们分组只是为了整理正则表达式。

See it work here

【讨论】:

    猜你喜欢
    • 2017-12-24
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多