gpt4 book ai didi

ruby - 正则表达式:多个匹配项之前的文本

转载 作者:太空宇宙 更新时间:2023-11-03 17:10:10 25 4
gpt4 key购买 nike

想法。给定字符串,返回所有匹配项(有重叠)和这些匹配项之前的文本。

示例。对于文本 atatgcgcatatat 和查询 atat 有三个匹配项,所需的输出是 atatatatgcgcatatatatgcgcatatat

问题。我使用 Ruby 2.2 和 String#scan 方法来获得多个匹配项。我尝试使用前瞻,但正则表达式 /(?=(.*?atat))/ 返回以 atat 结尾的每个子字符串。必须有一些正则表达式魔法来解决这个问题,但我想不出正确的咒语。

最佳答案

我相信这至少比 OP 的回答要好:

text = "atatgcgcatatat"
query = "atat"

res = []
text.scan(/(?=#{query})/){res.push($` + query)} #`
res # => ["atat", "atatgcgcatat", "atatgcgcatatat"]

关于ruby - 正则表达式:多个匹配项之前的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32523224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com