正则表达式(Java)

正则表达式(Java)


JAVA中的反斜杠 \:

注意: 在java中反斜杠 \ 本身具有特殊含义,表转义字符,所以要想打出 \ 就需要\\(很多语言都是这样)
所以,作为转义字符,有\n表换行 …
要想输入\,就需要\\, System.out.print("\\")—–> \

常用的正则表达符号

  1. . 匹配所有单个字符
  2. \ 反斜杠,将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,”n”匹配字符”n”。”\n”匹配换行符。序列”\\“匹配”\“,”\(“匹配”(“
  3. ^ $分别表示从开始位置匹配和结尾位置匹配
  4. * 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配”z”和”zoo”
  5. +一次或多次匹配前面的字符或子表达式
  6. ?零或一次匹配前面~~
  7. {n}表示正好匹配n次,{n,}表示至少匹配n次,{n,m}表示匹配 >=n,<=m
  8. (regex):括号表示捕获所匹配的字符串
  9. [xyz]:方括号表示字符集,匹配匹配包含的任一字符[^xyz]反向字符集
  10. [a-z] 表示所有小写字母
  11. \b匹配一个字边界,即字与空格间的位置,如”er\b”匹配”never”中的”er”,但不匹配”verb”中的”er”。
  12. \d表示数字,等效[0-9]   \D非数字
  13. \s匹配任何空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效。S非空格
  14. \w匹配任何字类字符,包括下划线。与”[A-Za-z0-9_]”等效。

Pattern 与Matcher类

使用;pattern 用其静态方法compile(regex) 创建,有split等方法
matcher可以用pattern.matcher(String)来创建,有matches相关,捕获方法
注意

  • find()方法是部分匹配,是查找输入串中与模式匹配的子串,如果该匹配的串有组还可以使用group()函数。

  • matches()是全部匹配,是将整个输入串与模式匹配,如果要验证一个输入的数据是否为数字类型或其他类型,一般要用matches()。

  • 必须先match.find(),然后才会捕获匹配,然后match.group()获取find结果,
    可以while(match.find())来一直搜索所有匹配到的

分组

从正则表达式左侧开始,每出现一个左括号“(”记做一个分组,分组编号从1开始。0代表整个表达式。

主要用于matcher.find(),,, matcher.group(index)
group(0)特指所匹配到的整个字符串,不计入group的length

© 2020 WPY's Android Tour All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero