返回
正则表达式实战案例:通俗易懂,轻松入门!</#>
前端
2023-02-22 17:24:32
正则表达式入门宝典:用代码驾驭字符串的力量
目录
- 正则表达式简介
- 实战案例:手机号匹配
- 实战案例:手机号中间四位替换
- 实战案例:体温匹配
- 实战案例:格式化数字
- 实战案例:格式化金额
- 实战案例:密码强度验证
- 常见问题解答
正则表达式简介
正则表达式(Regular Expression)是一种用于匹配、搜索和操作字符串的强大工具,在编程和数据处理领域广泛使用。它能够帮助你快速查找、提取、替换或验证字符串中的特定内容。
实战案例:手机号匹配
# 匹配中国大陆手机号
import re
phone_number = "13912345678"
pattern = "^(1[3-9]\d{9})# 匹配中国大陆手机号
import re
phone_number = "13912345678"
pattern = "^(1[3-9]\d{9})$"
match = re.match(pattern, phone_number)
if match:
print("手机号有效")
else:
print("手机号无效")
quot;
match = re.match(pattern, phone_number)
if match:
print("手机号有效")
else:
print("手机号无效")
实战案例:手机号中间四位替换
# 匹配手机号中间四位并替换为星号
import re
phone_number = "13912345678"
pattern = "^(1[3-9]\d{2})\d{4}([6-9]\d{3})# 匹配手机号中间四位并替换为星号
import re
phone_number = "13912345678"
pattern = "^(1[3-9]\d{2})\d{4}([6-9]\d{3})$"
replacement = "\g<1>**** \g<2>"
masked_phone_number = re.sub(pattern, replacement, phone_number)
print(masked_phone_number) # 输出:1391234**** 678
quot;
replacement = "\g<1>**** \g<2>"
masked_phone_number = re.sub(pattern, replacement, phone_number)
print(masked_phone_number) # 输出:1391234**** 678
实战案例:体温匹配
# 匹配体温数据
import re
temperature = "37.5℃"
pattern = "^(([3][5-9]\.[0-9])|([3][6-7]\.[0-9])|([3][8]\.[0-5]))℃# 匹配体温数据
import re
temperature = "37.5℃"
pattern = "^(([3][5-9]\.[0-9])|([3][6-7]\.[0-9])|([3][8]\.[0-5]))℃$"
match = re.match(pattern, temperature)
if match:
print("体温有效")
else:
print("体温无效")
quot;
match = re.match(pattern, temperature)
if match:
print("体温有效")
else:
print("体温无效")
实战案例:格式化数字
# 格式化数字,添加逗号分隔符
import re
number = 123456789
pattern = "^(\d{1,3})(\d{3})+(?:\.(\d{1,2}))?# 格式化数字,添加逗号分隔符
import re
number = 123456789
pattern = "^(\d{1,3})(\d{3})+(?:\.(\d{1,2}))?$"
replacement = "\g<1>,\g<2>\g<3>"
formatted_number = re.sub(pattern, replacement, str(number))
print(formatted_number) # 输出:123,456,789
quot;
replacement = "\g<1>,\g<2>\g<3>"
formatted_number = re.sub(pattern, replacement, str(number))
print(formatted_number) # 输出:123,456,789
实战案例:格式化金额
# 格式化金额,添加人民币符号
import re
amount = 12345.67
pattern = "^¥(\d{1,3})(\d{3})+(?:\.(\d{1,2}))?# 格式化金额,添加人民币符号
import re
amount = 12345.67
pattern = "^¥(\d{1,3})(\d{3})+(?:\.(\d{1,2}))?$"
replacement = "¥\g<1>,\g<2>\g<3>"
formatted_amount = re.sub(pattern, replacement, str(amount))
print(formatted_amount) # 输出:¥12,345.67
quot;
replacement = "¥\g<1>,\g<2>\g<3>"
formatted_amount = re.sub(pattern, replacement, str(amount))
print(formatted_amount) # 输出:¥12,345.67
实战案例:密码强度验证
# 验证密码强度
import re
password = "Abc123!@"
pattern = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}# 验证密码强度
import re
password = "Abc123!@"
pattern = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"
match = re.match(pattern, password)
if match:
print("密码强度强")
else:
print("密码强度弱")
quot;
match = re.match(pattern, password)
if match:
print("密码强度强")
else:
print("密码强度弱")
常见问题解答
-
正则表达式如何工作?
正则表达式使用模式来匹配字符串。模式是一种文本模式,了你要搜索的内容。 -
如何学习正则表达式?
练习是学习正则表达式的最佳方法。从简单的模式开始,逐渐解决更复杂的模式。 -
在哪里可以使用正则表达式?
正则表达式可用于各种应用程序,例如文本编辑器、搜索引擎和编程语言。 -
正则表达式有哪些优点?
正则表达式提供了强大的模式匹配功能,可以帮助你快速准确地处理字符串。 -
使用正则表达式时需要注意什么?
正则表达式可能会变得很复杂,因此在使用时请注意模式的语法和逻辑。
总结
正则表达式是一种强大的工具,可以极大地提升你的字符串处理能力。通过实践和理解,你可以掌握正则表达式,并将其应用于各种实际场景中。