簡體   English   中英

Java模式問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM