【发布时间】:2012-04-01 16:28:50
【问题描述】:
我需要一种简单的方法来使用matches 实现contains 函数。我相信这是我的出发点:
xxx.matches("'.*yyy.*'");
但我需要使它成为一种通用方法并预处理我搜索的任何内容以被匹配项接受!这必须仅使用转义“\”字符来完成!
想象一个字符串 SEARCH_FOR 可以包含一些必须“正则表达式转义”的特殊字符...
String SEARCH_FOR="*.\\"
xxx.matches("'.*" + SEARCH_FOR + ".*'");
有什么问题吗?特殊情况?是否应考虑其他任何“特殊字符”?
【问题讨论】:
-
为什么不直接使用正确的方法调用?
-
用 \Q 和 \E 包围 SEARCH_FOR 对你有用吗?他们告诉匹配引擎不要解释某个地区的特价商品。
-
@jackrabbit:如果搜索字符串包含 \E 将无济于事。
-
呵呵,没想到。 pilaster 的建议是可行的方法。
-
@marcolopes:如果这不是家庭作业,那么让你手动完成的人就是个白痴。有一个专门用来转义正则表达式特殊字符的函数;为什么不能用?
标签: java regex string contains