這是我不太瞭解的東西。Android的正則表達式不匹配
我想獲得的日期部分從以下字符串:
<th>Elkezdodott</th>
<td>2016. december 20., 19:29</td>
所以我用下面的代碼:
System.out.println(html);
Pattern p = Pattern.compile("\\p{Punct}th\\p{Punct}Elkezdodott\\p{Punct}{2}th\\p{Punct}\\p{Space}*" +
"\\p{Punct}td\\p{Punct}" +
"(\\d{4}\\p{Punct}\\p{Space}*[a-zA-Z]*\\p{Space}*\\d*\\p{Punct}{2}" +
"\\p{Space}*\\d{2}\\p{Punct}\\d{2})\\p{Punct}{2}td\\p{Punct}");
Matcher m = p.matcher(html);
if(m.matches()){
System.out.println("matches");
System.out.println(m.group());
}
此正則表達式根據檢查正則表達式選項似乎是正確的的Android Studio:
的的System.out.println(HTML)的結果是完全一樣的,你可以在圖像上看到:
06-03 11:49:15.779 4581-5229/hu.lyra.moly_kihivasok I/System.out: <th>Elkezdodott</th>
06-03 11:49:15.779 4581-5229/hu.lyra.moly_kihivasok I/System.out: <td>2016. december 20., 19:29</td>
我真不明白的是爲什麼米匹配()返回false。我也試過m.find(),但我得到了同樣的結果。我錯過了什麼?
感謝您的任何建議。
稍後的一些建議可以爲您節省頭痛:正則表達式不是解析HTML的正確工具。 – Henry
謝謝。如果我沒有找到任何解決方案,我會尋找其他的可能性。如果您有任何建議,請不要退縮。 :) – Lyra