掌握Java正则表达式:字符匹配与限定符详解

需积分: 0 2 下载量 142 浏览量 更新于2024-08-23 收藏 133KB PPT 举报
字符匹配符是正则表达式中的关键组成部分,它们用于定义一组特定的字符或字符集,以便在搜索和匹配文本时应用。在这个主题中,我们重点关注几种常用的字符匹配符: 1. `.(点)`:该符号匹配除换行符(`\n`)和回车符(`\r`)之外的任何单个字符。在实际应用中,它可以用于模糊匹配,允许匹配大部分字符,除了换行和回车。 2. `\\d`(反斜杠后跟大写的d):这个符号代表匹配任何数字字符,等同于字符集 `[0-9]`。它通常用于验证数字格式,比如电话号码的数字部分。 3. `\\D`:与`\\d`相反,`\\D`匹配任何非数字字符,等效于`[^0-9]`。这对于验证非数字字符或者区分数字和非数字输入非常有用。 4. `\\w`:此符号匹配任何英文字母、数字字符或下划线,相当于字符集 `[a-zA-Z0-9_]`。在创建用户名或密码规则时,`\\w`常常用于匹配字母和数字的组合。 5. `\\W`:与`\\w`相对应,`\\W`匹配任何非字母、数字或下划线字符,等价于`[^a-zA-Z0-9_]`。它可用于排除非预期字符,如特殊符号。 6. `\\s`(反斜杠后跟小写的s):匹配任何空白字符,包括空格、制表符、换页符(`\f`)、换行符(`\n`)、回车符(`\r`)和制表符(`\t`),用作通用的空白字符匹配。 7. `\\S`:与`\\s`相反,`\\S`匹配任何非空白字符,即除了上述空白字符之外的任何字符。 举例来说,当你需要验证中国的手机号码格式 `1[35]\d{9}` 时,正则表达式中的 `1[35]` 匹配开头的1和随后的3或5,`\d{9}` 表示紧接着的九个数字。而验证用户名由字母、数字、下划线和 `$` 组成的4位以上字符串,正则表达式可能是 `/[\w$]{4,}`,这里`\w` 包括了字母、数字和下划线,而`$`作为一个特殊字符,也需要转义。 此外,正则表达式还提供了限定符,用于控制前面字符或子表达式的出现次数。例如: - `*` 表示零次或多次匹配,等价于 `{0,}` - `+` 表示一次或多次匹配,等价于 `{1,}` - `?` 表示零次或一次匹配,等价于 `{0,1}` - `{n}` 代表恰好n次匹配 - `{n,}` 至少n次匹配 - `{n,m}` 最少n次,最多m次匹配 在正则表达式中,一些特殊字符如 `\c` 后接字符代码(如`\cM`表示回车符)也被广泛使用。换行符(`\n`)、制表符(`\t`)、换页符(`\f`)和垂直制表符(`\v`)都是预定义的特殊字符。 理解这些字符匹配符和限定符是掌握正则表达式的基础,它们使得我们能够精确地在文本中定位和操作符合特定模式的字符串。在编程语言如Java中,如需使用正则表达式,可以利用`Pattern`和`Matcher`类提供的方法进行匹配、查找或替换操作。