40个常用正则表达式,附带用法说明

正则表达式(Regular Expressions,简称 regex 或 regexp)是一种强大的文本处理工具,用于模式匹配和字符串处理。以下是一些常用的正则表达式及其应用场景。

基础符号

  • .:匹配任意单个字符(除了换行符)。
  • *:匹配前一个字符零次或多次。
  • +:匹配前一个字符一次或多次。
  • ?:匹配前一个字符零次或一次。
  • \d:匹配一个数字字符(0-9)。
  • \D:匹配一个非数字字符。
  • \w:匹配一个单词字符(字母、数字或下划线)。
  • \W:匹配一个非单词字符。
  • \s:匹配一个空白字符(空格、制表符、换行符等)。
  • \S:匹配一个非空白字符。
  • ^:匹配字符串的开始。
  • $:匹配字符串的结束。
  • […]:匹配方括号内的任意一个字符。
  • [^…]:匹配不在方括号内的任意一个字符。

常用正则表达式

校验数字

  1. 匹配正整数

    ^\d+$
    
  2. 匹配负整数

    ^-\d+$
    
  3. 匹配正浮点数

    ^\d*\.\d+$
    
  4. 匹配负浮点数

    ^-\d*\.\d+$
    
  5. 匹配非负整数(正整数和零)

    ^\d+$
    
  6. 匹配非正整数(负整数和零)

    ^-\d+|0$
    
  7. 匹配非负浮点数(正浮点数和零)

    ^\d+(\.\d+)?$
    
  8. 匹配非正浮点数(负浮点数和零)

    ^(-\d+(\.\d+)?|0(\.0+)?)$
    
  9. 匹配整数或浮点数

    ^-?\d+(\.\d+)?$
    
  10. 匹配货币金额(带可选符号和小数)

    ^\$\-?\d+(,\d{3})*(\.\d{0,2})?$
    

校验字符

  1. 匹配电子邮件地址

    ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
    
  2. 匹配 URL

    ^(https?|ftp)://[^\s/$.?#].[^\s]*$
    
  3. 匹配国内手机号(中国)

    ^1[3-9]\d{9}$
    
  4. 匹配用户名(允许字母、数字、下划线,3到16位)

    ^[a-zA-Z0-9_]{3,16}$
    
  5. 匹配强密码(至少8个字符,至少一个数字和一个字母)

    ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
    
  6. 匹配包含至少一个大写字母、一个小写字母和一个数字的强密码

    ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d]{8,}$
    
  7. 匹配包含大小写字母和特殊字符的强密码

    ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
    
  8. 匹配纯字母字符串

    ^[A-Za-z]+$
    
  9. 匹配纯大写字母字符串

    ^[A-Z]+$
    
  10. 匹配纯小写字母字符串

    ^[a-z]+$
    

其他常用

  1. 匹配国内电话号码(座机)

    ^\d{3,4}-\d{7,8}$
    
  2. 匹配 IP 地址

    \b(?:\d{1,3}\.){3}\d{1,3}\b
    
  3. 匹配 MAC 地址

    ^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$
    
  4. 匹配日期(YYYY-MM-DD)

    ^\d{4}-\d{2}-\d{2}$
    
  5. 匹配时间(HH:MM:SS)

    ^\d{2}:\d{2}:\d{2}$
    
  6. 匹配日期(MM/DD/YYYY 或 MM-DD-YYYY)

    ^(0[1-9]|1[0-2])[\/\-](0[1-9]|[12][0-9]|3[01])[\/\-]\d{4}$
    
  7. 匹配时间(24小时制,HH:MM)

    ^([01]\d|2[0-3]):[0-5]\d$
    
  8. 匹配邮政编码(国际)

    ^\d{4,6}$
    
  9. 匹配 URL(不带协议)

    ^[^\s/$.?#].[^\s]*$
    
  10. 匹配 RGB 颜色代码

    ^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$
    

特殊情况

  1. 匹配 HTML 标签

    ^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$
    
  2. 匹配包含中文字符的字符串

    [\u4e00-\u9fa5]
    
  3. 匹配括号内的内容

    \(([^)]+)\)
    
  4. 匹配引号内的内容

    "([^"]*)"
    
  5. 匹配 Markdown 链接

    \[(.*?)\]\((.*?)\)
    
  6. 匹配双引号内的内容

    "([^"]*)"
    
  7. 匹配单引号内的内容

    '([^']*)'
    
  8. 匹配 CSV 文件中的一行

    ^(?:[^,]*,)*[^,]*$
    
  9. 匹配美元金额(如 $123.45)

    ^\$\d+(\.\d{2})?$
    
  10. 匹配连续的重复字符

    (.)\1+
    

Python 中使用正则表达式

在 Python 中,可以使用 re 模块处理正则表达式。以下是一些常见的使用方法:

1. re.match()
import re

pattern = r'^\d{4}-\d{2}-\d{2}$'
string = '2023-10-01'
match = re.match(pattern, string)
if match:
    print("Match found!")
else:
    print("No match.")
2. re.search()
import re

pattern = r'\d{4}-\d{2}-\d{2}'
string = 'The date is 2023-10-01.'
search = re.search(pattern, string)
if search:
    print("Search found!")
else:
    print("No search.")
3. re.findall()
import re

pattern = r'\d{4}-\d{2}-\d{2}'
string = 'Dates: 2023-10-01, 2024-01-15.'
findall = re.findall(pattern, string)
print(findall)  # Output: ['2023-10-01', '2024-01-15']
4. re.sub()
import re

pattern = r'\d{4}-\d{2}-\d{2}'
string = 'The date is 2023-10-01.'
result = re.sub(pattern, 'YYYY-MM-DD', string)
print(result)  # Output: 'The date is YYYY-MM-DD.'

总结

正则表达式是一种强大的工具,用于模式匹配和文本处理。通过掌握常用的正则表达式及其应用,你可以高效地处理各种文本数据。结合 Python 的 re 模块,可以在实际项目中灵活运用正则表达式,解决复杂的数据处理问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值