2
在Ruby中,我寫了一個簡單的正則表達式查找第{
:什麼是正則表達式中的元字符?
txt.gsub! /^.*{/, '{'
每當我跑這一點,一切都會過去這一點,我的目的工作得很好,但是有一個輕微的錯誤線沿線的讀取WARNING: Dangling metacharacter detected.
具體是什麼懸掛元字符,以及如何將我的正則表達式更改爲儘可能明確和高效?
在Ruby中,我寫了一個簡單的正則表達式查找第{
:什麼是正則表達式中的元字符?
txt.gsub! /^.*{/, '{'
每當我跑這一點,一切都會過去這一點,我的目的工作得很好,但是有一個輕微的錯誤線沿線的讀取WARNING: Dangling metacharacter detected.
具體是什麼懸掛元字符,以及如何將我的正則表達式更改爲儘可能明確和高效?
{
在正則表達式中有特殊含義。
PATTERN{m,n}
上面匹配PATTERN重複m〜n次。
如果你想避免這種警告(匹配字面匹配{
)轉義它。
txt.gsub! /^.*\{/, '{'
UPDATE
BTW,/^.*{/
沒有趕上第一{
因爲.*
是貪婪匹配;它儘可能地消耗。
那麼,懸掛元字符只是元字符還沒有被設置爲轉義? – T145
@ T145,Ruby正則表達式足夠聰明,所以不會引起錯誤。也許你正在使用某種語法檢查,lint? – falsetru
是的,當某些操作發生時,我有一個測試套件可以在開發環境中運行。但是,就我所知,這是什麼懸掛的元字符? – T145