gpt4 book ai didi

regex - 如何从某个起始位置找到字符串中第一次出现的模式?

转载 作者:行者123 更新时间:2023-12-04 13:01:27 26 4
gpt4 key购买 nike

我有一个任意长度的字符串,从位置 p0 开始,我需要找到三个 3 字母模式之一的第一次出现。

假设字符串只包含字母。我需要找到从位置 p0 开始并在三胞胎中向前跳跃直到第一次出现 'aaa' 或 'bbb' 或 'ccc' 的三胞胎的计数。

这甚至可以仅使用正则表达式吗?

最佳答案

$string=~/^   # from the start of the string
(?:.{$p0}) # skip (don't capture) "$p0" occurrences of any character
(?:...)*? # skip 3 characters at a time,
# as few times as possible (non-greedy)
(aaa|bbb|ccc) # capture aaa or bbb or ccc as $1
/x;

(假设 p0 是基于 0 的)。

当然,在字符串上使用 substr 来向前跳过可能更有效:
substr($string, $p0)=~/^(?:...)*?(aaa|bbb|ccc)/;

关于regex - 如何从某个起始位置找到字符串中第一次出现的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/120071/

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