Dzq_Boyka
2015-07-28 08:05
采纳率: 87.2%
浏览 1.5k

java中正则表达式问题

如题: 如何得到一个字符串中匹配正则的子字符串?
例如:String str="abk abggs wws aos poe wihj allls ayutres ";
java代码。。。。。
得到(条件-----------以a开头以s结尾)
"abk", "abggs","aos","allls","ayutres"

求所需的正则表达式

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • danielinbiti 2015-07-28 08:12
    已采纳
     这不是和上回那个很相似吗,"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));//
            }
        }
    
    已采纳该答案
    打赏 评论
  • oyljerry 2015-07-28 08:11
     '^a[a-zA-Z]+s$\b'
    
    打赏 评论
  • sina_2831808769 2015-07-28 12:15

    a((?!\s).)*,

    打赏 评论
  • JonsonJiao 2015-07-28 15:13
    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。

    打赏 评论

相关推荐 更多相似问题