我正嘗試使用正則表達式來驗證XML文件中的內容。我嘗試了以下事情。用於驗證XML中標籤之間內容的正則表達式
XML文件1:
<start>
<hi>2dsds</hi>
<expected xmlns="sw2223" xmlns=\"\">123</expected>
<bye>2dsds</bye>
XML文件2:
<start>
<hi>2dsds</hi>
<Somethingexpected xmlns="sw2223" xmlns=\"\">123</Somethingexpected>
<bye>2dsds</bye>
在這兩個XML文件,我關注的領域<expected>
和<Somethingexpected>
之間的內容。我希望內容之間的每個領域都是數字。
有效內容:
<Somethingexpected xmlns="sw2223" xmlns=\"\">123</Somethingexpected>
<Expected xmlns=\"\">123</Expected>
<expected xmlns=\"\">123</expected>
無效的內容:
<Somethingexpected xmlns="sw2223" xmlns=\"\">123a</Somethingexpected>
<Expected xmlns=\"\">avbv 123</Expected>
<expected xmlns=\"\">**(***</expected>
我不需要其他任何標籤之間的數字(甚至沒有空格)
我曾嘗試使用這些正則表達式:
if(String.matches(".*<.*[eE]xpected.*?>.*[a-zA-Z].*<.*") ||
String.matches(".*<.*[eE]xpected.*?>.*[^0-9].*<.*"))
return invalid;
else
return valid;
輸入1:
<Somethingexpected xmlns="sw2223" xmlns=\"\">123</Somethingexpected>
輸入2:
<start>
<hi>2dsds</hi>
<Somethingexpected xmlns="sw2223" xmlns=\"\">123</Somethingexpected>
<bye>2dsds</bye>
對於輸入1,則該說有效。對於輸入2,它說無效
我不知道我哪裏出錯了。任何人都可以糾正我的正則表達式嗎?
首先,你對原始XML使用正則表達式。使用XPath首先提取值。 –