2014-09-23 78 views

回答

0

你需要逃避破折號使用字符類的內部時,他們說:

'/[[([A-Za-z0-9_\-\s])]]:(.?):([10]*)/' 

this answer報價由康拉德·魯道夫:

連字符通常是正則表達式中一個正常的字符。只有當它在一個組表達式中和另外兩個字符之間時,它纔有特殊的意義。

的問題的關鍵是,正則表達式被認爲字符類的這一部分:_-\s是表示一個字符範圍(等作爲[A-Z][a-z]),其是無效,因此錯誤。

正則表達式引擎不把連字符作爲字符範圍的一部分,如果它被包含在起點或字符類的結束,所以這兩個也爲你工作:

'/[[([A-Za-z0-9_\s-])]]:(.?):([10]*)/' 
'/[[([-A-Za-z0-9_\s])]]:(.?):([10]*)/' 
相關問題