如题: 如何得到一个字符串中匹配正则的子字符串?
例如:String str="abk abggs wws aos poe wihj allls ayutres ";
java代码。。。。。
得到(条件-----------以a开头以s结尾)
"abk", "abggs","aos","allls","ayutres"
求所需的正则表达式
这不是和上回那个很相似吗,"abk"这个应该不是吧
public static void test3(){
String str="abk abggs wws aos poe wihj allls ayutres ";
String startChar = "a";
String endChar = "s";
Pattern p = Pattern.compile("(?i)(?<=)a((?!\\s).)*s(?=)");//正则表达式
Matcher m = p.matcher(str) ;//
while (m.find()) {
System.out.println(m.group(0));//
}
}
'^a[a-zA-Z]+s$\b'
a((?!\s).)*,
public static void main(String[] args) {
String str = "abk abggs wws aos poe wihj alllsayutres ";
Pattern p = Pattern.compile("a.*?s");// a开头s结尾,中间是任意多个字符
Matcher m = p.matcher(str);
while (m.find()) {
System.out.println(m.group(0));
}
}
输出结果:
abk abggs
aos
allls
ayutres
这个第一个匹配项中因为有两个a一个s,因此是找到的最全的匹配项,不能输出abggs。