$ 表示以它前面的表达式结尾,
所以 ^first$只能匹配 first(前后没有其他字符)
如过你要从first century May中匹配first, 正则表达式直接用first就可以了
例子: 字符串Absl*dkHH-lkjHH=ldkHHld_kfjHHfas/dfHHfa=sldfZ
用 ^A.*Z$ 匹配整个字符串
用H{2}或HH可以匹配字符串中所有的 HH
public static void test2() {String sp = "(不错|很好)(.*)(但是|就是|但|只是)"
// QRY#姓名#身份证号#亲友号码#身份证住址
String s1 = "课程很不错,礼仪是我们大家日常生活、工作不可或缺的事情。但是感觉学生上课不积极"
Pattern pa = Pattern.compile(sp)
Matcher ma = pa.matcher(s1)
if (ma.find()) {
System.out.println(ma.group(1))
System.out.println(ma.group(3))
}
System.out.println()
}
请参考