Ruby 正则表达式学习笔记
什么是正则表达式
正则表达式是一种用于匹配文本字符串的模式。它包含一些特殊字符和语法,用于指定要匹配的文本模式。
正则表达式基础语法
Ruby 的正则表达式支持许多特殊字符和语法,下面是一些常用的字符和语法:
字符/语法 | 描述 |
---|---|
. | 匹配任意一个字符 |
[] | 匹配方括号中的任意一个字符 |
[^] | 匹配不在方括号中的任意一个字符 |
\d | 匹配数字 |
\D | 匹配非数字 |
\s | 匹配空白字符(空格、制表符、换行符等) |
\S | 匹配非空白字符 |
\w | 匹配字母、数字、下划线 |
\W | 匹配非字母、数字、下划线 |
^ | 开头匹配 |
$ | 结尾匹配 |
* | 匹配前面的字符零次或多次 |
+ | 匹配前面的字符一次或多次 |
? | 匹配前面的字符零次或一次 |
{n} | 匹配前面的字符恰好 n 次 |
{m,n} | 匹配前面的字符至少 m 次,至多 n 次 |
Ruby 正则表达式实例
匹配 Email 地址
rubyCopy Codeemail = "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 Codedate = "2023-06-05"
if date =~ /^\d{4}-\d{2}-\d{2}$/
puts "Valid date format"
else
puts "Invalid date format"
end
匹配电话号码
rubyCopy Codephone_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 Codestring = "hello world"
puts string.gsub(/[aeiou]/, "*")
# 输出:h*ll* w*rld
总结
本文介绍了 Ruby 正则表达式的基础语法和常用的实例,正则表达式在字符串处理中应用广泛,学习它可以提高我们对字符串的处理效率和精度。