1
我正在尋找一種方法來匹配第一個符號的字符串,但考慮到我給匹配方法的偏移量。Ruby Regexp#匹配匹配字符串開始與給定的位置(Python重新喜歡)
test_string = 'abc def qwe'
def_pos = 4
qwe_pos = 8
/qwe/.match(test_string, def_pos) # => #<MatchData "qwe">
# ^^^ this is bad, as it just skipped over the 'def'
/^qwe/.match(test_string, def_pos) # => nil
# ^^^ looks ok...
/^qwe/.match(test_string, qwe_pos) # => nil
# ^^^ it's bad, as it never matches 'qwe' now
就是我要找的是:
/...qwe/.match(test_string, def_pos) # => nil
/...qwe/.match(test_string, qwe_pos) # => #<MatchData "qwe">
任何想法?
是的,謝謝。在類似的問題中有相同的想法:http://stackoverflow.com/questions/7292976/ruby-string-how-to-match-a-regexp-from-a-defined-position?rq=1。現在只需要計算這對BIG字符串的性能影響 – Farcaller
好吧,似乎沒有什麼大的性能打擊,並且我在性能分析方面贏得了另外1個秒鐘:) – Farcaller
感謝您的補充。已經意識到爲什麼^(\ n +)組在「<...」上匹配。 – Farcaller