Ruby 正则表达式学习笔记

什么是正则表达式

正则表达式是一种用于匹配文本字符串的模式。它包含一些特殊字符和语法,用于指定要匹配的文本模式。

正则表达式基础语法

Ruby 的正则表达式支持许多特殊字符和语法,下面是一些常用的字符和语法:

字符/语法 描述
. 匹配任意一个字符
[] 匹配方括号中的任意一个字符
[^] 匹配不在方括号中的任意一个字符
\d 匹配数字
\D 匹配非数字
\s 匹配空白字符(空格、制表符、换行符等)
\S 匹配非空白字符
\w 匹配字母、数字、下划线
\W 匹配非字母、数字、下划线
^ 开头匹配
$ 结尾匹配
* 匹配前面的字符零次或多次
+ 匹配前面的字符一次或多次
? 匹配前面的字符零次或一次
{n} 匹配前面的字符恰好 n 次
{m,n} 匹配前面的字符至少 m 次,至多 n 次

Ruby 正则表达式实例

匹配 Email 地址

rubyCopy Code
email = "example123@domain.com" if email =~ /\A[\w+\-.]+@[a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i puts "Valid email address" else puts "Invalid email address" end

匹配日期格式(YYYY-MM-DD)

rubyCopy Code
date = "2023-06-05" if date =~ /^\d{4}-\d{2}-\d{2}$/ puts "Valid date format" else puts "Invalid date format" end

匹配电话号码

rubyCopy Code
phone_number = "123-4567-8901" if phone_number =~ /^[0-9]{3}-[0-9]{4}-[0-9]{4}$/ puts "Valid phone number" else puts "Invalid phone number" end

替换字母

rubyCopy Code
string = "hello world" puts string.gsub(/[aeiou]/, "*") # 输出:h*ll* w*rld

总结

本文介绍了 Ruby 正则表达式的基础语法和常用的实例,正则表达式在字符串处理中应用广泛,学习它可以提高我们对字符串的处理效率和精度。