返回

正则表达式实战案例:通俗易懂,轻松入门!</#>

前端

正则表达式入门宝典:用代码驾驭字符串的力量

目录

  • 正则表达式简介
  • 实战案例:手机号匹配
  • 实战案例:手机号中间四位替换
  • 实战案例:体温匹配
  • 实战案例:格式化数字
  • 实战案例:格式化金额
  • 实战案例:密码强度验证
  • 常见问题解答

正则表达式简介

正则表达式(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("密码强度弱")

常见问题解答

  1. 正则表达式如何工作?
    正则表达式使用模式来匹配字符串。模式是一种文本模式,了你要搜索的内容。

  2. 如何学习正则表达式?
    练习是学习正则表达式的最佳方法。从简单的模式开始,逐渐解决更复杂的模式。

  3. 在哪里可以使用正则表达式?
    正则表达式可用于各种应用程序,例如文本编辑器、搜索引擎和编程语言。

  4. 正则表达式有哪些优点?
    正则表达式提供了强大的模式匹配功能,可以帮助你快速准确地处理字符串。

  5. 使用正则表达式时需要注意什么?
    正则表达式可能会变得很复杂,因此在使用时请注意模式的语法和逻辑。

总结

正则表达式是一种强大的工具,可以极大地提升你的字符串处理能力。通过实践和理解,你可以掌握正则表达式,并将其应用于各种实际场景中。