我想在Ruby腳本的文本中匹配正則表達式(至少基本的,不是所有可能的類型......)。
這就像一個... \/\^? oh my god... \$?\/[eimnosux]*
用於匹配最簡單的Ruby正則表達式的Ruby正則表達式
也許我需要在這裏遞歸正則表達式。
我想在Ruby腳本的文本中匹配正則表達式(至少基本的,不是所有可能的類型......)。
這就像一個... \/\^? oh my god... \$?\/[eimnosux]*
用於匹配最簡單的Ruby正則表達式的Ruby正則表達式
也許我需要在這裏遞歸正則表達式。
正如我上面評論的,你需要解析Ruby來區分分割斜槓和正則表達式分隔符。但對於最簡單的,簡單的情況下,不用擔心這個,怎麼樣:
regex_match = %r{/(?:[^/\\]|\\.)+/[mgixo]*}
這就是「正斜槓,後面跟着一個或更多的東西,要麼是不是正斜槓或反斜槓,或者是反斜槓後跟其他東西,最後跟着一個斜槓,並可能有一些正則表達式標誌。「
看起來不錯。需要測試。我認爲它需要用命名組遞歸。 – Nakilon 2010-11-17 19:19:52
我仍然懷疑它。例如,即使像「hello world」這樣的簡單字符串也可以用作正則表達式。你在尋求某種啓發式嗎? – 2010-11-17 16:51:19
@ alpha-mouse,'\/\ ^? \ $?\/[eimnosux] *'是我想要的基本示例。我想匹配正則表達式,以最簡單的形式放在Ruby源代碼中:'/....../'。不是'%r {}'或'Regex.new(str)'。 – Nakilon 2010-11-17 16:56:04
您需要爲此解析Ruby。想想下面這行代碼:'x = foo/bar * str [/ foo /,1] .to_i'如果沒有根據語法實際解析Ruby代碼,您無法知道第一個斜槓是否應該啓動正則表達式。 – Phrogz 2010-11-17 17:56:20