簡體   English   中英

Ruby String:如何從定義的位置匹配Regexp

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM