我做了一個XML Schema,我在裏面有這個。我的正則表達式有問題嗎?
<xs:element name="Email">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
一些我在我的XML文檔失敗的一個電子郵件,我得到這個錯誤
電子郵件」元素是無效的 - 值 ‘[email protected]’根據 無效其數據類型'字符串' - 模式約束失敗。 LineNumber上:15404 LinePostion:32
所以只看途經的所有電子郵件和失敗我注意到,所有失敗的那些有「_(下劃線)」的人。所以我不確定這是否是原因。
編輯
所以我改變了我的正則表達式來此
<xs:pattern value="[\w_]+([-+.'][\w_]+)*@[\w_]+([-.][\w_]+)*\.[\w_]+([-.][\w_]+)*"/>
現在的作品,但不明白爲什麼\w
沒有捕捉它。
看起來你已經確定了這個問題 - 你的正則表達式根本沒有提到下劃線。 – 2010-07-29 21:49:10
字符類'\ w'不應該包含下劃線嗎? – 2010-07-29 21:50:48
嗯看到我使用程序expresso來幫助我編寫我的正則表達式,並且它帶有下劃線來捕獲事物,這很奇怪。另外,我認爲這是我剛剛從.net電子郵件驗證器獲得的。另外我認爲orangeoctopus是正確的\ w應該趕上它。 – chobo2 2010-07-29 21:53:53