2012-05-24 41 views
6

我有這樣的正則表達式:[\s\S-[<>]]*瞭解正則表達式[ S S - [<>] *

能否請你幫我理解這是什麼表情代表什麼?從我看到的情況來看,它意味着一個由空格和範圍組成的角色類別,從非空格字符到<或>?

這沒什麼意義..

謝謝!

+0

哪種語言實現? – Tim

+0

它適用於Java,它適用於XSD驗證程序模式:

回答

8

這是一個只有幾個正則表達式引擎(.NET,JGSoft,XML Schema和XPath,但不是本地Java正則表達式)支持的變體,它被稱爲character class substraction

例如,

[A-Z-[EFG]] 

匹配從AZ除了EFG任何字母。

但在你的情況下,它確實沒有多大意義,因爲[\s\S]匹配任何字符 - 相同的結果(在任何正則表達式的味道),可以通過

[^<>]* 
+0

謝謝!但是如果我寫[A \ S - [<>]] - 這是否意味着:「字符A或任何非空格字符沒有<>」? –

+0

甚至更​​簡單,[\ S - [<>]]是否表示沒有<>的所有非空格字符? –

+0

@leadgy:是的,但你總是可以用不同的方式寫,例如'[^ \ s <>]'。 –

相關問題