gpt4 book ai didi

ruby-on-rails - 通过 Regex、Ruby 拆分时保留模式字符

转载 作者:数据小太阳 更新时间:2023-10-29 06:49:53 28 4
gpt4 key购买 nike

我有以下字符串

str="HelloWorld How areYou I AmFine"

我要把这个字符串放到下面的数组中

["Hello","World How are","You I Am", "Fine"]

我一直在使用以下正则表达式,它正确拆分但也省略了匹配模式,我也想保留该模式。我得到的是

str.split(/[a-z][A-Z]/)
=> ["Hell", "orld How ar", "ou I A", "ine"]

它省略了匹配模式。

谁能帮我解决如何在结果数组中保留这些字符

最佳答案

Ruby 1.9 中,您可以使用 positive lookahead and positive lookbehind (先行和后行正则表达式构造也称为零宽度断言)。它们匹配字符,但随后放弃匹配并仅返回结果,因此您不会丢失边框字符:

str.split /(?<=[a-z])(?=[A-Z])/
=> ["Hello", "World How are", "You I Am", "Fine"]

Ruby 1.8 不支持前瞻/后视结构。如果可能,我建议使用 ruby​​ 1.9。

如果您被迫使用 ruby​​ 1.8.7,我认为正则表达式对您没有帮助,我能想到的最佳解决方案是构建一个简单的状态机:遍历原始字符串中的每个字符并构建第一个字符串直到遇到边界条件。然后构建第二个字符串等。

关于ruby-on-rails - 通过 Regex、Ruby 拆分时保留模式字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9992734/

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