[英]Java Pattern issue
我從DB獲取包含表單字符串的文本
CO<sub>2</sub>
為了識別這個,我寫了下面的代碼
String footText = "... some text containing CO<sub>2</sub>";
String co2HTML = "CO<sub>2</sub>";
Pattern pat = Pattern.compile(co2HTML);
Matcher mat = pat.matcher(footText);
final boolean hasCO2 = mat.matches();
問題是hasCO2總是假的,盡管inout文本有子串。 有什么不對的?
謝謝!
您應該使用find()
而不是matches()
,因為后者會嘗試將整個字符串與模式匹配,而不是執行搜索。
來自Javadoc :
matches
方法嘗試將整個輸入序列與模式匹配。lookingAt
方法嘗試將輸入序列(從頭開始)與模式匹配。find
方法掃描輸入序列,尋找與模式匹配的下一個子序列。
此外,有問題的模式並不需要正則表達式; 您可以使用String.indexOf()
來執行搜索。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.