2016-05-18 20 views
1

我正在從網站和數據存儲在csv文件中抓取數據。有一個td,其日期格式爲'dd/m/yyyy'。現在我必須做的事情是,每當日期到達td時,我必須打印1。所以,我用下面的代碼試了一下。如何使用正則表達式使用jsoup設置日期格式java

if (tdElements.text().matches("\\d+\\/\\d+\\/\\d+")) { 
        sb.append("1"); 
       } 

但它不工作。通過使用'匹配'的實際日期(18/5/2016)也不起作用,但它與包含。但是,正則表達式也不能與'contains'一起工作,所以請提供我解決方案,我該如何解決我的問題。

回答

1
if (tdElements.text().matches("\\d+\\/\\d+\\/\\d+")) { 
    sb.append("1"); 
} 

上述代碼表明您正在操縱多個td s。
text()方法將返回td組合文本。
這就是爲什麼matches方法找不到任何東西。加入上面的代碼是給下面的錯誤...... 「非靜態變量dateMatcher不能從靜態引用

Matcher dateMatcher = Pattern.compile("\\d+\\/\\d+\\/\\d+").matcher(""); 

Document doc = ... 
Elements tdElements = doc.select(...); 

for(Element td : tdElements) { 
    if (dateMatcher.reset(td.ownText()).matches()) { 
     sb.append("1"); 
    } 
} 
+0

相反,對每個td像下面的文字中使用正則表達式上下文 ----「 –

+0

@AhmedTalha上面的代碼應該用在方法體中。 – Stephan

+0

對不起對不起...我實際上是在方法之外定義了Matcher ..非常感謝你Stephan的工作人員...... –