簡體   English   中英

Java Swing JTable RowFilter忽略符號

[英]Java swing JTable RowFilter ignoring symbols

這是我用於過濾JTable代碼。 'text'是要在表中搜索的輸入文本。

getSorter().setRowFilter(RowFilter.regexFilter("(?i)" + Pattern.quote(text)));

這里的過濾不區分大小寫。 我如何在過濾期間忽略某些符號,例如- ( ) + ,例如+ 88-11和8811在過濾期間應該匹配。

創建RowFilter的自定義實現。 在include方法中:

  • 在字符串上調用replaceAll()方法以刪除要排除的特殊字符。
  • 然后搜索與您的搜索模式匹配的內容。
  • 根據是否匹配返回true / false。

我假設您將能夠采用以下模式(完全滿足您的標准)來滿足您的要求:

String pattern = "([\\Q+-*/\\E]?+\\d+)+"

簡單輸入:

+25+36
25+36*36
2536

與其他類似,這將導致一場比賽。

工作方式:

  1. [\\\\Q+-*/\\\\E]要匹配+, -, *, /中的任何一個+, -, *, /然后將?+作為量詞: X?+表示X一次出現或根本不出現。
  2. \\\\d+是與一位或多位數字匹配的模式
  3. 並讓X = [\\\\Q+-*/\\\\E]?+\\\\d+(X) :將X匹配為捕獲組,而(X)+表示該組至少出現一次或多次。

查看Pattern類文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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