正则表达式学习笔记

什么是正则表达式?

正则表达式是一种用于匹配文本的工具,它通常由一些特定字符和语法组成。使用正则表达式可以快速、灵活地对文本进行搜索、替换等操作。

基础语法

字符类

  • .:表示任意字符。
  • \d:表示数字,等同于 [0-9]
  • \D:表示非数字,等同于 [^0-9]
  • \w:表示单词字符(字母、数字、下划线),等同于 [a-zA-Z0-9_]
  • \W:表示非单词字符,等同于 [^a-zA-Z0-9_]
  • \s:表示空白字符(空格、制表符、换行符等),等同于 [ \t\n\r\f\v]
  • \S:表示非空白字符,等同于 [^ \t\n\r\f\v]

重复次数

  • *:表示前面的字符可以重复 0 次或更多次。
  • +:表示前面的字符可以重复 1 次或更多次。
  • ?:表示前面的字符可以重复 0 次或 1 次。
  • {n}:表示前面的字符必须重复 n 次。
  • {n,}:表示前面的字符可以重复 n 次或更多次。
  • {n,m}:表示前面的字符可以重复 n 到 m 次。

边界匹配

  • ^:表示字符串开头。
  • $:表示字符串结尾。
  • \b:表示单词边界(单词字符和非单词字符的交界处)。
  • \B:表示非单词边界。

实例应用

邮箱地址匹配

Copy Code
/^[\w.-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/

该正则表达式可以匹配符合邮箱地址格式的字符串,例如:

  • example@domain.com
  • example.lastname@domain.co.jp

手机号匹配

Copy Code
/^(13[0-9]|14[5-9]|15[0-3,5-9]|16[6]|17[0-8]|18[0-9]|19[1,8,9])\d{8}$/

该正则表达式可以匹配符合中国大陆手机号格式的字符串,例如:

  • 13912345678
  • 18888888888

URL 匹配

Copy Code
/^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w .-]*)*\/?$/

该正则表达式可以匹配符合 URL 地址格式的字符串,例如:

  • https://www.example.com/index.html
  • www.example.com/about.html