2012-11-05 24 views
4

我已經搜查甚廣,還沒有發現任何地方解釋的正則表達式:[ !-~]*或爲此事([!-~]|[ ])*[!-~]([!-~]|[ ])*在XSD文件中,模式[! - 〜] *實際檢查的是什麼?

我用正則表達式的多個測試人員,他們似乎接受所有輸入。我讀過XSD接受RegEx的一種獨特形式,並且不接受所有的RegEx語句,所以這可能不是一個標準的RegEx表達式(我不相信它)。我唯一的提示是第一個表達式的類型名稱爲an,第二個表達式的類型名稱爲anM。我相信,在某種程度上,這是字母數字和字母數字倍數的縮寫,但我想100%確定這是真的接受,而不是做出假設。

回答

5

[ !-~]匹配空格或範圍從!~之間的任何字符,其中範圍由ASCII/Unicode順序定義。順便提一下,!是第一個,也是~最後一個可打印的ASCII字符,所以它將匹配任何可打印的ASCII字符或空格。

([!-~]|[ ])*[!-~]([!-~]|[ ])*是類似的,但它需要一個非空格字符。 [!-~]|[ ][ !-~]相同。

+0

''[[ - 〜〜] | [])''也可以寫成'[ - 〜]',因爲空間是你想包括的內容 – Anirudha

+0

@ Fake.It.Til.U.Make.It yes good點!但是,這更加混淆正則表達式(在我看來),問題是關於正則表達式的解釋,而不是如何優化它;) –

相關問題