我正在使用Ruby开发文本编辑器,需要支持用户提供的正则表达式模式的“查找”功能。以下是一个简单(熟悉的)用例:
Joe User正在编辑一个文本文件,并已将光标定位在文件的中间某个位置。他想要向后搜索,以查找与任意正则表达式匹配的最近子字符串。
我认为这个问题相当于将用户的模式应用于光标位置之前的整个字符串。当然,我可以从文件开头循环遍历所有匹配项并使用最后一个匹配项,但这似乎非常低效...更好的方法是进行“从右到左”的搜索,但我没有找到使用Ruby Regexp实现这一点的方法。你能帮忙吗?
Joe User正在编辑一个文本文件,并已将光标定位在文件的中间某个位置。他想要向后搜索,以查找与任意正则表达式匹配的最近子字符串。
我认为这个问题相当于将用户的模式应用于光标位置之前的整个字符串。当然,我可以从文件开头循环遍历所有匹配项并使用最后一个匹配项,但这似乎非常低效...更好的方法是进行“从右到左”的搜索,但我没有找到使用Ruby Regexp实现这一点的方法。你能帮忙吗?
rindex
的人。(对我来说,它看起来比被接受的答案更清晰。) - Jon Ericson