"正则表达式是用于匹配字符串的强大工具,它可以用来验证、提取或替换文本。本资源主要涵盖了一些常见的正则表达式模式及其用途。"
正则表达式(Regular Expression,简称regex)是一种模式匹配语言,广泛应用于数据验证、文本搜索和替换等场景。以下是一些重要的正则表达式知识点:
1. **基本字符类**:
- `\d`: 匹配任何数字,等价于 `[0-9]`。
- `\D`: 匹配任何非数字字符,等价于 `[^0-9]`。
- `\s`: 匹配任何空白字符,包括空格、制表符和换行符。
- `\S`: 匹配任何非空白字符,等价于 `[^ \t\n\r\f\v]`。
- `\w`: 匹配任何字母数字字符,包括下划线,等价于 `[a-zA-Z0-9_]`。
- `\W`: 匹配任何非字母数字字符,等价于 `[^a-zA-Z0-9_]`。
2. **预定义字符类**:
- `[a-zA-Z]`: 匹配任何小写字母或大写字母。
- `[0-9]`: 匹配任何数字。
- `[\u4e00-\u9fa5]`: 匹配任何中文字符。
3. **量词**:
- `*`: 匹配前面的元素零次或多次。
- `+`: 匹配前面的元素一次或多次。
- `?`: 匹配前面的元素零次或一次。
- `{n}`: 匹配前面的元素恰好n次。
- `{n,}`: 匹配前面的元素至少n次。
- `{n,m}`: 匹配前面的元素n到m次。
4. **位置匹配**:
- `^`: 匹配输入字符串的开始。
- `$`: 匹配输入字符串的结束。
- `\b`: 匹配单词边界。
5. **分组与选择**:
- `(pattern)`: 将模式分组,可以捕获匹配的子串。
- `pattern1|pattern2`: 匹配`pattern1`或`pattern2`。
6. **否定预查**:
- `[^pattern]`: 匹配除`pattern`中的字符之外的任何字符。
- `(?!pattern)`: 如果后面不跟着`pattern`,则匹配当前位置。
7. **正则示例**:
- 验证手机号码:`^1[3-9]\d{9}$`。
- 验证邮箱地址:`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`。
- 提取HTML中的链接:`<a\s+(?:[^>]*?\s+)?href=(["'])(.*?)\1[^>]*>(.*?)</a>`。
- 验证网址URL:`^https?://[^\s/$.?#].[^\s]*$`。
8. **正则表达式的其他用法**:
- 在JavaScript中,可以使用`test()`、`match()`、`replace()`和`split()`方法处理正则表达式。
- 在编程语言中,正则表达式通常有全局匹配(g)、多行匹配(m)和忽略大小写(i)等标志。
9. **数字验证**:
- 验证是否为正整数:`^[1-9]\d*$`。
- 验证是否为负整数:`^-[1-9]\d*$`。
- 验证是否为非负整数(包括0):`^[1-9]\d*|0$`。
- 验证是否为非正整数(包括0):`^-?[1-9]\d*|0$`。
- 验证浮点数:`^-?([1-9]\d*.d*|0.d*[1-9]d*|0?.0+|0)$`。
10. **字母验证**:
- 验证全英文字符:`^[A-Za-z]+$`。
- 验证全大写英文字符:`^[A-Z]+$`。
- 验证全小写英文字符:`^[a-z]+$`。
- 验证字母数字组合:`^[A-Za-z0-9]+$`。
- 验证单词字符(包括下划线):`^w+$`。
掌握这些正则表达式的基本概念和用法,可以大大提高处理文本和数据的能力。在实际应用中,可以根据具体需求组合使用这些规则,创建复杂的匹配模式。