一、什么是正则表达式?
正则表达式描述了一种字符串匹配的模式。可以用来搜索、编辑或处理文本,用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。在这里我们学习一下在java中的正则表达式。
二、正则表达式的使用之匹配字符串
一个字符串就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。
捕获组是把多个字符当一个单独单元进行处理的方法,它通过对括号内的字符分组来创建。通过从左至右计算其开括号来编号。
例如,在表达式((A)(B(C))),有四个这样的组:
- ((A)(B(C)))
- (A)
- (B(C))
- (C)
可以通过调用 matcher 对象的 groupCount 方法来查看表达式有多少个分组。groupCount 方法返回一个 int 值,表示matcher对象当前有多个捕获组。
还有一个特殊的组(group(0)),它总是代表整个表达式。该组不包括在 groupCount 的返回值中。
String类中有一个查找字符串中是否包含某个字符的方法--matches方法,同时也有一个方法--equals与matches方法类似。
例如:
"Java".matches("Java");
"Java".equals("Java");
这两个语句返回值都为True。
然而matches的功能更加强大。以上两种都是匹配的一个固定的字符串"Java",matches还可以匹配符合一个模式的字符串集。
三、正则表达式语法
在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。
四、替换和拆分字符串
String 类包含 repalceAll(替换所有匹配的子字符串) ,replaceFirst(替换第一个匹配的子字符串) 和 split 方法,用于替换和拆分字符串。