我想在Java中使用正则表达式检查字符串中是否存在多个子字符串之一。
SomeString: randomtextrickmortysummergazorpazorp
Output needed: true
我尝试使用下面的模式,但它返回false
String patternString = "rick|morty";
String text = "randomtextrickmortysummergazorpazorp";
Pattern pattern = Pattern.compile(patternString, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(text);
System.out.println("Matches :" + matcher.matches());
请帮助。
答案 0 :(得分:2)
这是因为matches()
只返回true
,如果整个字符串与您的模式匹配。请改用find()
:
尝试将整个区域与模式匹配。
System.out.println("Found :" + matcher.find());
尝试找到与模式匹配的输入序列的 next subsequence 。