您的位置:首页 > 其它

正则表达式(Pattern和Matcher类)

2018-11-01 19:28 26 查看

正则表达式:

概念:正确规则的表达式 规则java给我们定的,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。

正则表达式的组成规则

规则字符在java.util.regex Pattern类中
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,零次或多次 大于等于1次 都算多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次

正则表达式的功能

A:正则表达式的判断功能

String类的功能:public boolean matches(String regex)

B:正则表达式的分割功能 split()方法

String类的功能:public String[] split(String regex)

C:把给定字符串中的数字排序

举例分析:
有一个字符串:”91 27 46 38 50”,编写代码实现最终输出结果是:”27 38 46 50 91”

  • a: 定义目标字符串"91 27 46 38 50"
  • b: 对这个字符串进行切割,得到的就是一个字符串数组
  • c: 把b中的字符串数组转换成int类型的数组
  • (1): 定义一个int类型的数组,数组的长度就是字符串数组长度
  • (2): 遍历字符串数组,获取每一个元素.将其转换成int类型的数据
  • (3): 把int类型的数据添加到int类型的数组的指定位置
  • d: 排序
  • e: 创建一个StringBuilder对象,用来记录拼接的结果
  • f: 遍历int类型的数组, 将其每一个元素添加到StringBuilder对象中
  • g: 就是把StringBuilder转换成String
  • h: 输出

D:正则表达式的替换功能

String类的功能:public String replaceAll(String regex,String replacement)

E:正则表达式的获取功能

Pattern和Matcher的结合使用,使用的是 find()方法  和 group()方法  注意一定要先使用find()方法先找到 才能用group()方法获取出来

举例:
获取下面这个字符串中由三个字符组成的单词

正则表达式 \\b[a-z]{3}\\b 		da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu

Pattern和Matcher

(正则的获取功能需要使用的类)
Pattern->模式器
Matcher->匹配器
使用方法,举例如下

Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: