[英]Java swing JTable RowFilter ignoring symbols
這是我用於過濾JTable
代碼。 'text'
是要在表中搜索的輸入文本。
getSorter().setRowFilter(RowFilter.regexFilter("(?i)" + Pattern.quote(text)));
這里的過濾不區分大小寫。 我如何在過濾期間忽略某些符號,例如- ( ) +
,例如+ 88-11和8811在過濾期間應該匹配。
創建RowFilter
的自定義實現。 在include方法中:
replaceAll()
方法以刪除要排除的特殊字符。 我假設您將能夠采用以下模式(完全滿足您的標准)來滿足您的要求:
String pattern = "([\\Q+-*/\\E]?+\\d+)+"
簡單輸入:
+25+36
25+36*36
2536
與其他類似,這將導致一場比賽。
工作方式:
[\\\\Q+-*/\\\\E]
要匹配+, -, *, /
中的任何一個+, -, *, /
然后將?+
作為量詞: X?+
表示X
一次出現或根本不出現。 \\\\d+
是與一位或多位數字匹配的模式 X = [\\\\Q+-*/\\\\E]?+\\\\d+
, (X)
:將X
匹配為捕獲組,而(X)+
表示該組至少出現一次或多次。 查看Pattern類文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.