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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xfbyxq 中级黑马   /  2016-7-6 21:33  /  524 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xfbyxq 于 2016-7-6 21:35 编辑

bool String.matches(reg)

1:正则表达式(理解)
(1)就是符合一定规则的字符串
(2)常见规则
  A:字符
   x 字符 x。举例:'a'表示字符a
   \\ 反斜线字符。
   \n 新行(换行)符 ('\u000A')
   \r 回车符 ('\u000D')
   
  B:字符类
   [abc] a、b 或 c(简单类)
   [^abc] 任何字符,除了 a、b 或 c(否定)
   [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
   [0-9] 0到9的字符都包括
   
  C:预定义字符类
   . 任何字符。我的就是.字符本身,怎么表示呢? \.
   \d 数字:[0-9]
   \w 单词字符:[a-zA-Z_0-9]
    在正则表达式里面组成单词的东西必须有这些东西组成

  D:边界匹配器
   ^ 行的开头
   $ 行的结尾
   \b 单词边界
    就是不是单词字符的地方。
    举例:hello world?haha;xixi
   
  E:Greedy 数量词
   X? X,一次或一次也没有
   X* X,零次或多次
   X+ X,一次或多次
   X{n} X,恰好 n 次
   X{n,} X,至少 n 次
   X{n,m} X,至少 n 次,但是不超过 m 次
(3)常见功能:(分别用的是谁呢?)
  A:判断功能
   String类的public boolean matches(String regex)
  B:分割功能
   String类的public String[] split(String regex)
  C:替换功能
   String类的public String replaceAll(String regex,String replacement)
  D:获取功能
   Pattern和Matcher
    Pattern p = Pattern.compile("a*b");
    Matcher m = p.matcher("aaaaab");
   
    find():查找存不存在
    group():获取刚才查找过的数据

当想匹配的值有很多时,就需要用匹配器
比如匹配小说列表等
典型的调用顺序是
Pattern p = Pattern.compile("a*b");创建指定表达式模式 Matcher m = p.matcher("aaaaab");通过调用matcher()方法返回匹配器 boolean b = m.matches();
Matcher匹配器有三种匹配方法
matches 方法尝试将整个输入序列与该模式匹配。 判断匹配类似String.isMatcher()方法
lookingAt 尝试将输入序列从头开始与该模式匹配。 判断是否能匹配到.类似 String.IndexOf()
find 方法扫描输入序列以查找与该模式匹配的下一个子序列    重点

Find()如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。
            如果Find()返回True  就可以调用  group()方法来返回查询到的子字符串获取   group(int index)获取指定子字符串

复杂情况下匹配

Pattern p = Pattern.compile("a*b");创建指定表达式模式 Matcher m = p.matcher("aaaaab");通过调用matcher()方法返回匹配器 if(m.find()){    String result=m.group();}



5 个回复

倒序浏览
可以                        
回复 使用道具 举报
可以可以
回复 使用道具 举报
谢谢分享啊  ..
回复 使用道具 举报
赞赞赞赞
回复 使用道具 举报
不错,不错,收藏了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马