元字符:点与字符集
正则表达式主要依赖于元字符。 元字符不代表他们本身的字面意思,他们都有特殊的含义。一些元字符写在方括号中的时候有一些特殊的意思。以下是一些元字符的介绍:
| 元字符 | 描述 |
|---|---|
| . | 句号匹配任意单个字符除了换行符。 |
| [ ] | 字符种类。匹配方括号内的任意字符。 |
| [^ ] | 否定的字符种类。匹配除了方括号里的任意字符 |
| * | 匹配 >=0 个重复的在 * 号之前的字符。 |
| + | 匹配 >=1 个重复的 + 号前的字符。 |
| ? | 标记 ? 之前的字符为可选。 |
| {n,m} | 匹配 num 个大括号之前的字符或字符集 (n <= num <= m)。 |
| (xyz) | 字符集,匹配与 xyz 完全相等的字符串。 |
|转义字符,用于匹配一些保留的字符 [ ] ( ) { } . * + ? ^ $ \ |
|
| ^ | 从开始行开始匹配。 |
| $ | 从末端开始匹配。 |
2.1 点运算符 .
. 是元字符中最简单的例子。
. 匹配任意单个字符,但不匹配换行符。
例如,表达式 .ar 匹配一个任意字符后面跟着是 a 和 r 的字符串。
".ar" => The **car** **par**ked in the **gar**age.
2.2 字符集
字符集也叫做字符类。
方括号用来指定一个字符集。
在方括号中使用连字符来指定字符集的范围。
在方括号中的字符集不关心顺序。
例如,表达式 [Tt]he 匹配 the 和 The。
"[Tt]he" => **The** car parked in **the** garage.
方括号的句号就表示句号。
表达式 ar[.] 匹配 ar. 字符串。
"ar[.]" => A garage is a good place to park a c**ar.**
2.2.1 否定字符集
一般来说 ^ 表示一个字符串的开头,但它用在一个方括号的开头的时候,它表示这个字符集是否定的。
例如,表达式 [^c]ar 匹配一个后面跟着 ar 的除了 c 的任意字符。
"[^c]ar" => The car **par**ked in the **gar**age.