A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张卫刚 中级黑马   /  2013-3-23 12:39  /  1606 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张卫刚 于 2013-3-31 01:18 编辑


第二组为什么是\A啊???

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

6 个回复

倒序浏览
第二组是转译.

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
“1     ((A)(B(C)))
2     \A
3     (B(C))
4     (C) “
是J从DK API中文版Pattern类中的摘录中。比对了JDK API英文版的Pattern类,发现“2     \A ”是排版错了。英文版本如下:
1     ((A)(B(C)))
2     (A)
3     (B(C))
4     (C)

正规中的组和捕获代码示例如下:
  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3.   
  4. public class PatternTest {  
  5.   
  6.     public static void main(String[] args) {  
  7.         String text = "<textarea rows=\"20\" cols=\"70\">nexus maven repository index properties updating index central</textarea>";  
  8.         //下面的正则表达式中共有四个捕获组:(<textarea.*?>)、(.*?)、(</textarea>)和整个匹配到的内容  
  9.         String reg = "(<textarea.*?>)(.*?)(</textarea>)";   
  10.         Pattern p = Pattern.compile(reg);  
  11.         Matcher m = p.matcher(text);  
  12.         while (m.find()) {  
  13.             System.out.println(m.group(0)); // 整个匹配到的内容  
  14.             System.out.println(m.group(1)); // (<textarea.*?>)  
  15.             System.out.println(m.group(2)); // (.*?)  
  16.             System.out.println(m.group(3)); // (</textarea>)  
  17.         }  
  18.     }  
  19. }
复制代码
更多的讲解见:JAVA正则表达式-捕获组与非捕获组
回复 使用道具 举报
”1     ((A)(B(C)))
2     \A
3     (B(C))
4     (C) “
是JDK API中文版的Pattern类中的摘录吧,比对JDK API英文版的Pattern类,发现”2     \A “是排版错了。英文版的Pattern类这部分摘录为:
”1     ((A)(B(C)))
2     (A)
3     (B(C))
4     (C) “

捕获组代码示例如下
  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3.   
  4. public class PatternTest {  
  5.   
  6.     public static void main(String[] args) {  
  7.         String text = "<textarea rows=\"20\" cols=\"70\">nexus maven repository index properties updating index central</textarea>";  
  8.         //下面的正则表达式中共有四个捕获组:(<textarea.*?>)、(.*?)、(</textarea>)和整个匹配到的内容  
  9.         String reg = "(<textarea.*?>)(.*?)(</textarea>)";   
  10.         Pattern p = Pattern.compile(reg);  
  11.         Matcher m = p.matcher(text);  
  12.         while (m.find()) {  
  13.             System.out.println(m.group(0)); // 整个匹配到的内容  
  14.             System.out.println(m.group(1)); // (<textarea.*?>)  
  15.             System.out.println(m.group(2)); // (.*?)  
  16.             System.out.println(m.group(3)); // (</textarea>)  
  17.         }  
  18.     }  
  19. }
复制代码
希望有帮助。
回复 使用道具 举报
import java.util.regex.Matcher;
import java.util.regex.Pattern;
  
public class PatternTest {  
  
    public static void main(String[] args) {  
        String text = "<textarea rows=\"20\" cols=\"70\">nexus maven repository index properties updating index central</textarea>";  
        //下面的正则表达式中共有四个捕获组:(<textarea.*?>)、(.*?)、(</textarea>)和整个匹配到的内容  
        String reg = "(<textarea.*?>)(.*?)(</textarea>)";   
        Pattern p = Pattern.compile(reg);  
        Matcher m = p.matcher(text);  
        while (m.find()) {  
            System.out.println(m.group(0)); // 整个匹配到的内容  
            System.out.println(m.group(1)); // (<textarea.*?>)  
            System.out.println(m.group(2)); // (.*?)  
            System.out.println(m.group(3)); // (</textarea>)  
        }  
    }  
}
回复 使用道具 举报
本帖最后由 何衍其 于 2013-3-30 22:16 编辑

1    ((A)(B(C)))
2    \A
3    (B(C))
4    (C)

是JDK API中文版Pattern类中的片段吧,其中的”2  \A“是排版错了。

英文版的如下:
1    ((A)(B(C)))
2    (A)
3    (B(C))
4    (C)

组和捕获的例子如下:
  1. import java.util.regex.Matcher;
  2. import java.util.regex.Pattern;
  3.   
  4. public class PatternTest {  
  5.   
  6.     public static void main(String[] args) {  
  7.         String text = "<textarea rows=\"20\" cols=\"70\">nexus maven repository index properties updating index central</textarea>";  
  8.         //下面的正则表达式中共有四个捕获组:(<textarea.*?>)、(.*?)、(</textarea>)和整个匹配到的内容  
  9.         String reg = "(<textarea.*?>)(.*?)(</textarea>)";   
  10.         Pattern p = Pattern.compile(reg);  
  11.         Matcher m = p.matcher(text);  
  12.         while (m.find()) {  
  13.             System.out.println(m.group(0)); // 整个匹配到的内容  
  14.             System.out.println(m.group(1)); // (<textarea.*?>)  
  15.             System.out.println(m.group(2)); // (.*?)  
  16.             System.out.println(m.group(3)); // (</textarea>)  
  17.         }  
  18.     }  
  19. }  
复制代码
回复 使用道具 举报
若还有问题,继续追问;没有的话,将帖子分类改成【已解决】哦~  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马