從下面的字符串,我在HTTP響應receieve:匹配標籤內的正則表達式
<res>
<resultCode>100</resultCode>
<resultText>OK</resultText>
<sessionId>60698PLA1354274623024</sessionId>
<sessionState>OPEN</sessionState>
</res>
我想提取的sessionState(以及後來的sessionId)用java
我試過下面的正表達:
"object containing http response".matches("\<sessionState\>.*\</sessionState\>")
但我從來沒有得到一個匹配。我認爲問題是,我得到了多行(我已經嘗試添加\ n \ S,但沒有運氣)HTTP響應。
任何幫助表示讚賞,謝謝。
這是輸出我建議正則表達式得到:
DEBUG [1] ReplaceTags STEP for text: '"{=var.code}".matches("\\<sessionState \\>.*\\</sessionState\\>")' is: '"<res>\r\n <resultCode>100</resultCode>\r\n <resultText>OK</resultText>\r\n <sessionId>60698PLA1354274623024</sessionId>\r\n <sessionState>OPEN</sessionState>\r\n</res>'
DEBUG Executing code: "<res>\r\n <resultCode>100</resultCode>\r\n <resultText>OK</resultText>\r\n <sessionId>60698PLA1354274623024</sessionId>\r\n <sessionState>OPEN</sessionState>\r\n</res>".matches("\\<sessionState\\>.*\\</sessionState\\>")
DEBUG Compiling code:
public class EvalFunction105qhjmhjn3 {
public String eval() {
return "" + "<res>\r\n <resultCode>100</resultCode>\r\n <resultText>OK</resultText>\r\n <sessionId>60698PLA1354274623024</sessionId>\r\n <sessionState>OPEN</sessionState>\r\n</res>".matches("\\<sessionState\\>.*\\</sessionState\\>");
}
}
DEBUG Eval execution returned result: 'false'
爲什麼你逃脫< and >。你不需要。 –
使用'xml parser' ...不是'regex' ... – Anirudha
同意。這很難,但它工作正常。正則表達式似乎只適用於簡單的xml。抱歉。 – dashrb