[Ruby-0]正则表达式(regular expression)
Ruby的正则表达式定义在两个/中,如
A.match /\d+/
=~
=~返回第一给对应到的字符的index,否则返回nil
# Find the word 'like'
"Do you like cats?" =~ /like/
如果你不在乎对应字母的index,也可以使用String#include?
范围(Range)
[0-9]匹配任意0到9的数字
[a-z]匹配任意a到z的字母
[^a-z]匹配任意不是a到z的字符
def contains_number(str)
str =~ /[0-9]/
end
contains_number("The year is 2015") # returns 12
contains_number("The cat is black") # returns nil
缩写(shorthand syntax)
\w相当于 [0-9a-zA-Z]
\d相当于[0-9]
\s相当于空格(tab\space etc.)
如果要取反的话,就将字母变为大写,如\W
需要注意的是.可以匹配任何东西,如果你想匹配.的话需要在前面加上
修饰语(Modifier)
和其他语言相近
+:一个或多个
?:0个或1个
*:0个或者更多
{a,b}:a到b个
如果想将匹配结果转化为boolean,可以使用!!是
获取匹配部分的字符
使用match可以获得匹配的得到的字符
puts "x.y".match /\w\.\w/ #x.y
如果想让其限制在本行可以加上^和$
"Berkeley".match /^\w{4}$/
今天先写到这,会继续更新