gpt4 book ai didi

java - 使用 RowFilter (regexFilter) 匹配括号

转载 作者:搜寻专家 更新时间:2023-11-01 02:49:39 25 4
gpt4 key购买 nike

protected void searchFilter(String s, int n) 
{
RowFilter<MyTableModel, Object> rf = null;
try {
System.out.println(s);
rf = RowFilter.regexFilter(s, n);
} catch (PatternSyntaxException e) {
System.out.println(e);
}
filters.add(rf);
}

我正在尝试匹配 JTable 中包含括号的字符串。在上面的代码中,字符串参数可以是:约翰(史密斯)

我正在搜索的列:

Jane (Doe)
John (Smith)
John (Smith)
Jack (Smith)

我希望它返回的位置:

John (Smith)
John (Smith)

但是现在它没有返回任何东西。我查看了 Matcher、Pattern 和 RowFilter 的文档,但到目前为止没有任何帮助。

最佳答案

括号是正则表达式中的元字符。因此,您实际上是在尝试匹配 John Smith(不带括号)。你需要做的就是逃离它们。

Java 有一个内置函数可以自动转义所有元字符:Pattern.quote .通过此函数运行 s,它应该会修复它。

另请注意,您可能希望用 ^...$ 将模式括起来。否则它会接受包含类似 This is John (Smith) foobar. 的行(因为正则表达式很高兴它可以匹配输入的子字符串)。

关于java - 使用 RowFilter (regexFilter) 匹配括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13777554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com