[英]Ruby String: how to match a Regexp from a defined position
我想僅從定義的位置匹配來自ruby字符串的正則表達式。 在那個位置之前的比賽對我不感興趣。 而且,我想要\\A
匹配這個位置。
我發現這個解決方案:
code[index..-1][/\A[a-z_][a-zA-Z0-9_]*/]
這匹配字符串code
中位置index
的正則表達式。 如果匹配不完全在位置index
,則返回nil
。
有沒有更優雅的方法來做到這一點(我想避免用第一個切片創建臨時字符串)?
謝謝
您可以在正則表達式中使用^.{#{index}}
。 不知道那是不是你想要的,因為我完全不理解你的問題。 你可以用測試的字符串添加一個例子嗎? 你聽說過Rubular嗎? 測試正則表達式的好方法。
如果我正確理解你的問題,你可以這樣做:
code.match(/^.{#{index}}your_regex_here/)
index
變量將放在正則表達式中。 當index = 4
,它將檢查從頭開始是否有4個字符。 然后它將檢查您自己的正則表達式,並且只有在您的正則表達式有效時才返回true。 我希望它有所幫助。 祝好運。
編輯
如果您想獲得正則表達式的匹配值:
code.scan(/^.{#{index}}([a-z_][a-zA-Z0-9_]*)/).join
它將匹配的結果(在括號內)放入一個數組中並將其連接成一個String。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.