我有一个任意长度的字符串,并且从位置p0开始,我需要找到三个3字母模式之一的第一次出现。
假设字符串仅包含字母。我需要找到从位置p0开始并在三元组中向前跳跃直到第一次出现“aaa”或“bbb”或“ccc”的三元组的计数。
仅使用正则表达式是否有可能?
最佳答案
莫里茨说,这可能比正则表达式要快。即使稍微慢一点,在凌晨5点也更容易理解。 :)
#0123456789.123456789.123456789。
我的$ string =“alsdhfaaasccclaaaagalkfgblkgbklfs”;
我的$ pos = 9;
我的$ length = 3;
我的$ regex = qr/^(aaa | bbb | ccc)/;
while($ pos <长度$ string)
{
打印“正在检查$ pos\n”;
if(substr($ string,$ pos,$ length)=〜/$ regex/)
{
打印“在$ pos\n找到$ 1”;
最后的;
}
$ pos + = $ length;
}
关于regex - 如何从某个起始位置查找字符串中模式的首次出现?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/120071/