正则表达式 (regular expression) 又称正规表达式、常规表达式,是对字符串操作的一种逻辑公式.就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等.
其中包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符").通过正则表达式,我们可以用来搜索、编辑或处理文本.虽然繁琐,但功能强大,能很好的提高效率.
特点
1. 灵活性、逻辑性和功能性非常强;
2. 可以迅速地用极简单的方式达到字符串的复杂控制.
3. 对于刚接触的人来说,比较晦涩难懂.
由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容.举例来说,使用正则表达式匹配(验证)字符串:this is text (this\s +is\s+text 其中加号表示可以有一到多个空格)
语法及说明
使用方法
java.util.regex 包主要包括以下三个类:
-
Pattern 类:
pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。
-
Matcher 类:
Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
-
PatternSyntaxException:
PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。
基本代码格式
// 创建patten对象
Pattern p = Pattern.compile("^this\\s+is\\s+text");
// 创建matcher对象
Matcher m = p.matcher(str);
// 调用matcher对象m的matches方法
return m.matches();
string中也有对应的matches方法