2013-12-14 30 views
2

在Ruby中,我寫了一個簡單的正則表達式查找第{什麼是正則表達式中的元字符?

txt.gsub! /^.*{/, '{' 

每當我跑這一點,一切都會過去這一點,我的目的工作得很好,但是有一個輕微的錯誤線沿線的讀取WARNING: Dangling metacharacter detected.具體是什麼懸掛元字符,以及如何將我的正則表達式更改爲儘可能明確和高效?

回答

3

{在正則表達式中有特殊含義。

PATTERN{m,n} 

上面匹配PATTERN重複m〜n次。

如果你想避免這種警告(匹配字面匹配{)轉義它。

txt.gsub! /^.*\{/, '{' 

UPDATE

BTW,/^.*{/沒有趕上第一{因爲.*是貪婪匹配;它儘可能地消耗。

+0

那麼,懸掛元字符只是元字符還沒有被設置爲轉義? – T145

+0

@ T145,Ruby正則表達式足夠聰明,所以不會引起錯誤。也許你正在使用某種語法檢查,lint? – falsetru

+0

是的,當某些操作發生時,我有一個測試套件可以在開發環境中運行。但是,就我所知,這是什麼懸掛的元字符? – T145

相關問題