String HtmlBody = "<a>$abc123$</a>sdasfsadfsdfsadfasdf<a>sdav</a>$diav$";
//我想匹配出两个$符号之间的内容.如上这个字符串,应该匹配出$abc123$和$diav$两项.
String RegexStr = "\$.*\$";
Pattern pattern = Pattern.compile(RegexStr);
Matcher matcher = pattern.matcher(HtmlBody);
boolean IsMatcher= matcher.matches();
if(IsMatcher)
{
     System.out.println("匹配结果:" + IsMatcher);
     System.out.println("匹配数量:" + matcher.groupCount());
}
else
{
    System.out.println("没有匹配的项!");
}各位老大帮帮忙,这个正则表达式该怎么写啊?

解决方案 »

  1.   

    Up各位老大,是Java程序哦.俺Java新学,各位请帮帮忙.
      

  2.   


    String HtmlBody = "<a>$abc123$</a>sdasfsadfsdfsadfasdf<a>sdav</a>$diav$";
          //我想匹配出两个$符号之间的内容.如上这个字符串,应该匹配出$abc123$和$diav$两项.
          Pattern pattern = Pattern.compile("\\$\\w+\\$");
          Matcher matcher = pattern.matcher(HtmlBody);
     
          while (matcher.find()) {
            System.out.println(matcher.group());
         }
      

  3.   

    String HtmlBody = "<a>$abc123$</a><a>$dav#年龄#18#男$</a>sdasfsadfsdfsadfasdf<a>sdav</a>$diav$";
    //我想匹配出两个$符号之间的内容.如上这个字符串,应该匹配出$abc123$,$diav$,$dav#年龄#18#男$三项.
    Pattern pattern = Pattern.compile("\\$\\w+\\$");
    Matcher matcher = pattern.matcher(HtmlBody);
    while (matcher.find()) {
    System.out.println(matcher.group());
    }
    //如上这样写的话,$abc123$,$diav$可以匹配出来,可是$dav#年龄#18#男$就匹配不出来了,为什么呢?
      

  4.   

     Pattern pattern = Pattern.compile("\\$[^\\$]+\\$");那就改成这样,前面你没有#数据的
      

  5.   

    呵呵,谢谢你,我自己弄出来了,呵呵Pattern pattern = Pattern.compile("\\$\\S+\\$");