# 介绍

> 原文： [https://docs.oracle.com/javase/tutorial/essential/regex/intro.html](https://docs.oracle.com/javase/tutorial/essential/regex/intro.html)

## 什么是正则表达式？

_ 正则表达式 _ 是一种基于集合中每个字符串共享的共同特征来描述一组字符串的方法。它们可用于搜索，编辑或操作文本和数据。您必须学习特定的语法来创建正则表达式 - 这超出了 Java 编程语言的常规语法。正则表达式的复杂程度各不相同，但是一旦理解了它们的构造基础，您就能够解密（或创建）任何正则表达式。

该路径教授 [`java.util.regex`](https://docs.oracle.com/javase/8/docs/api/java/util/regex/package-summary.html) API 支持的正则表达式语法，并提供了几个工作示例来说明各种对象如何交互。在正则表达式的世界中，有许多不同的风格可供选择，例如 grep，Perl，Tcl，Python，PHP 和 awk。 `java.util.regex` API 中的正则表达式语法与 Perl 中的正则表达式语法最相似。

## 如何在此包中表示正则表达式？

`java.util.regex`包主要由三类组成： [`Pattern`](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html) ， [`Matcher`](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Matcher.html) 和 [`PatternSyntaxException`](https://docs.oracle.com/javase/8/docs/api/java/util/regex/PatternSyntaxException.html) 。

*   `Pattern`对象是正则表达式的编译表示。 `Pattern`类不提供公共构造函数。要创建模式，必须首先调用其`public static compile`方法之一，然后返回`Pattern`对象。这些方法接受正则表达式作为第一个参数;这条路线的前几课将教你所需的语法。
*   `Matcher`对象是解释模式并对输入字符串执行匹配操作的引擎。与`Pattern`类一样，`Matcher`不定义公共构造函数。通过在`Pattern`对象上调用`matcher`方法获得`Matcher`对象。
*   `PatternSyntaxException`对象是未经检查的异常，表示正则表达式模式中的语法错误。

这条小径的最后几课详细探讨了每节课。但首先，您必须了解实际构造正则表达式的方式。因此，下一节将介绍一个简单的测试工具，将重复使用它来探索其语法。