我正在尝试用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]+)*
这可能是正确的正则表达式代码吗?
答案 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)