Java - 用于搜索的正则表达式

时间:2013-10-08 14:39:24

标签: java regex

我正在尝试用Java构建一个正则表达式字符串。

实施例

search - test

它应匹配以下TestCases

1. The test is done
2. me testing now
3. Test
4. tEST
5. the testing
6. test now

我现在拥有的(不工作)

([a-z]+)*[t][e][s][t]([a-z]+)*

这可能是正确的正则表达式代码吗?

4 个答案:

答案 0 :(得分:2)

一种方法是你可以这样叫String#matches

String search = "test";
String line = "The Testing";
boolean found = line.matches("(?i)^.*?" + Pattern.quote(search) + ".*$"); // true

此处(?i)用于忽略大小写匹配,Pattern.quote用于从search字符串中转义可能的正则表达式特殊字符。

答案 1 :(得分:1)

尝试((\ w \ s)(测试)(\ s \ w))。也可以使用您正在使用toLower

搜索的字符串
String regex = "((\\w\\s)*(test)(\\s\\w)*)";
String text = "someTesTt";

Pattern pattern = Pattern.compile(regex)

Matcher matcher = pattern.matcher(text.toLowerCase());
if(matcher.find()) {
     // we have a match!
}

答案 2 :(得分:1)

您也可以使用Pattern pattern = Pattern.compile(".*test.*", Pattern.CASE_INSENSITIVE);

答案 3 :(得分:1)

在不区分字母大小的情况下找到test字的正则表达式将是

(t|T)(e|E)(s|S)(t|T)