常用的正则表达式format

本文汇总了多种常用的正则表达式验证规则,包括数字、日期、字符串、邮箱及URL等,适用于各种输入验证场景。
验证数字:^[0-9]*$
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0)  ^\d+$
验证非正整数(负整数 + 0)  ^((-\d+)|(0+))$
验证长度为3的字符:^.{3}$
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
验证汉字:^[\u4e00-\u9fa5],{0,}$
验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
验证身份证号(15位或18位数字):^\d{15}|\d{}18$
验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$    正确格式为:01、09和1、31。
整数:^-?\d+$
非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
正浮点数   ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
负浮点数  ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数  ^(-?\d+)(\.\d+)?
### 常见的数据清洗正则表达式及其应用场景 #### 1. 移除多余空白符 在数据清洗过程中,经常遇到多余的空格或制表符影响数据分析准确性。可以使用以下正则表达式来移除字符串两端或多余的空白字符。 ```python import re pattern = r'\s+' # 匹配任意数量的连续空白字符 text = " Hello, world! \t" cleaned_text = re.sub(pattern, ' ', text).strip() print(cleaned_text) # 输出:"Hello, world!" ``` 此方法适用于清理输入字段中的不必要空白[^1]。 --- #### 2. 验证电子邮件地址格式 为了确保数据集中存储的电子邮箱地址有效,可采用如下正则表达式: ```python email_pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$' test_email = "example.email@domain.com" if re.match(email_pattern, test_email): print("Email is valid.") else: print("Invalid email format.") ``` 该模式能够检测大多数标准邮件地址的有效性[^2]。 --- #### 3. 提取日期时间信息 当处理包含多种日期格式的日志文件或其他文档时,可以通过定制化的正则提取所需的时间戳。 ```python date_time_pattern = r'(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})' log_entry = "Error occurred on 2023-07-15 18:30:45." match = re.search(date_time_pattern, log_entry) if match: date_info = f"{match.group(1)}-{match.group(2)}-{match.group(3)}" time_info = f"{match.group(4)}:{match.group(5)}:{match.group(6)}" print(f"Parsed Date: {date_info}, Time: {time_info}") ``` 这种技术对于日志分析特别有用。 --- #### 4. 替换非法字符 某些情况下,数据库可能不允许存储特殊字符或者需要规范化文本内容。此时可以用正则替换掉不符合规定的符号。 ```python illegal_chars_pattern = r'[<>:"/\\|?*]' file_name = "my<file>.txt" sanitized_file_name = re.sub(illegal_chars_pattern, '', file_name) print(sanitized_file_name) # 输出:myfile.txt ``` 上述例子展示了如何安全化文件名以适应操作系统限制[^3]。 --- #### 5. 数字范围校验 如果目标是对某一列数值型数据进行筛选,则可通过定义合适的正则完成初步过滤工作。 ```python number_range_pattern = r'(?:\b\d{1,3}(?:,\d{3})*(?:\.\d+)?|\B\d+(?:\.\d+)?)' sample_numbers = ["$1,234", "-567.89", "+1e-10"] filtered_numbers = [num for num in sample_numbers if re.fullmatch(number_range_pattern, num)] print(filtered_numbers) # 可能输出合法数字列表 ``` 这种方法有助于识别潜在错误记录并提高后续计算精度[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值