正则表达式是一种强大的文本处理工具,用于在字符串中查找、替换或提取特定模式的文本。下面将根据提供的部分正则表达式示例,详细解释它们的功能与应用场景。
### 数字匹配
1. **非负整数匹配**:
- `^[1-9]d*$`:匹配任何非零开头的数字串。
- `^-[1-9]d*$`:匹配任何负数且非零开头的数字串。
- `^-?[1-9]d*$`:匹配任何正数或负数(非零开头)的数字串。
- `^[1-9]d*|0$`:匹配任何非零开头的数字串或0。
- `^-[1-9]d*|0$`:匹配任何负数(非零开头)的数字串或0。
- `^[1-9]d*.d*|0.d*[1-9]d*$`:匹配任何非零开头的带小数点的数字串或小数形式的0。
- `^-([1-9]d*.d*|0.d*[1-9]d*)$`:匹配任何负数(非零开头)的带小数点的数字串或小数形式的负0。
- `^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$`:匹配任何正数或负数的小数形式,包括0。
2. **数字长度限制**:
- `^d{n}$`:匹配恰好有n个数字的字符串。
- `^d{n,}$`:匹配至少有n个数字的字符串。
- `^d{m,n}$`:匹配介于m到n之间的数字数量的字符串。
- `^(0|[1-9][0-9]*)$`:匹配任何非负整数,包括0和不以0开头的整数。
- `^[0-9]+(.[0-9]{2})?$`:匹配最多两位小数的非负实数。
### 字符匹配
1. **字母匹配**:
- `^[A-Za-z]+$`:匹配仅由大小写字母组成的字符串。
- `^[A-Z]+$`:匹配仅由大写字母组成的字符串。
- `^[a-z]+$`:匹配仅由小写字母组成的字符串。
2. **字母数字混合**:
- `^[A-Za-z0-9]+$`:匹配仅由字母和数字组成的字符串。
- `^w+$`:匹配任何单词字符(等同于[A-Za-z0-9_]),常用于验证用户名或密码。
### 验证与格式
1. **Email地址验证**:
- `^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$`:用于验证标准的Email地址格式,包括可选的用户名修饰符和域名后缀。
2. **URL验证**:
- `^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$`:用于验证HTTP协议的URL,支持子域和路径。
3. **电话号码验证**:
- `^((d{3,4})|d{3,4}-)?d{7,8}$`:用于验证中国大陆的电话号码格式,支持区号和分隔符。
4. **身份证号验证**:
- `^d{15}|d{18}$`:用于验证中国身份证号,支持15位和18位格式。
### 特殊符号与多语言支持
1. **中文字符匹配**:
- `^.{3}$`:匹配任意三个字符,可以用于匹配三个汉字。
- `^[u4e00-u9fa5],{0,}$`:匹配任何数量的中文字符。
2. **特殊符号排除**:
- `[^%&,;=?$x22]+`:匹配不包含指定特殊符号的字符串。
3. **多语言与特殊字符**:
- `[\u4e00-\u9fa5]`:匹配Unicode范围内的中文字符。
- `[^\x00-\xff]`:匹配非ASCII字符,常用于检测多语言输入。
以上正则表达式覆盖了从基本的数字、字母匹配到复杂的格式验证和多语言支持,是进行文本分析和数据清洗时的常用工具。理解并熟练掌握这些正则表达式的应用,能够极大地提高数据处理的效率和准确性。