gpt4 book ai didi

ruby - 如何使用 Ruby 正则表达式从字符串中提取重复字符序列?

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

我有这样一个字符串“++++001------zx.......?????????xxxxxxx”我想提取多于一个长度的连续使用 Ruby 正则表达式将序列转换为扁平数组:

["++++",
"00",
"------",
".......",
"?????????",
"xxxxxxx"]

我可以通过嵌套循环来实现:

s="++++001------zx.......?????????xxxxxxx"
t=s.split(//)
i=0
f=[]
while i<=t.length-1 do
j=i
part=""
while t[i]==t[j] do
part=part+t[j]
j=j+1
end
i=j
if part.length>=2 then f.push(part) end
end

但我无法找到合适的正则表达式来输入扫描方法。我试过这个:s.scan(/(.)\1++/x) 但它只捕获重复序列的第一个字符。有可能吗?

最佳答案

这有点棘手。

您确实想要捕获超过任何给定字符之一的任何组。所以一个很好的方法是使用反向引用。您的解决方案接近正确。

/((.)\2+)/ 应该可以解决问题。

请注意,如果您使用扫描,这将为每个匹配组返回两个值。第一个是序列,第二个是值。

关于ruby - 如何使用 Ruby 正则表达式从字符串中提取重复字符序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17842464/

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