问题描述
- java中正则表达式问题
-
如题: 如何得到一个字符串中匹配正则的子字符串?
例如: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));//
}
}
解决方案二:
java中正则表达式-匹配问题
java中正则表达式使用
Java中正则表达式类的一些使用
解决方案三:
'^a[a-zA-Z]+s$'
解决方案四:
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。
时间: 2024-09-08 13:03:43