Ruby 正则表达式

Ruby 正则表达式

正则表达式 是一个定义搜索模式的字符序列,主要用于字符串的模式匹配。Ruby正则表达式即Ruby regex的简称,可以帮助我们在字符串中找到特定的模式。Ruby regex的两个用途是验证和解析。Ruby regex也可以用来验证一个电子邮件地址和一个IP地址。Ruby regex表达式是在两个正斜杠之间声明的。

语法

# finding the word 'hi'
"Hi there, i am using gfg" =~ /hi/

如果存在’hi’这个词,这将返回该词第一次出现的索引,否则将返回 ‘nil ‘。

检查一个字符串是否有一个regex

我们也可以通过使用 match 方法来检查一个字符串是否有一个regex。下面的例子可以让我们理解。
例子:

# Ruby program of regular expression
  
# Checking if the word is present in the string
if "hi there".match(/hi/)
    puts "match"
end

输出

match

检查一个字符串是否有一些字符集

我们可以使用一个 字符集 s,让我们定义一个字符范围进行匹配。例如,如果我们想搜索元音,我们可以使用 [aeiou] 进行匹配。

例子 :

# Ruby program of regular expression
  
# declaring a function which checks for vowel in a string
def contains_vowel(str)
  str =~ /[aeiou]/
end
  
# Driver code
  
# Geeks has vowel at index 1, so function returns 1
puts( contains_vowel("Geeks") )
  
# bcd has no vowel, so return nil and nothing is printed
puts( contains_vowel("bcd") )

输出

1

不同的正则表达式

有不同的简短表达式用于指定字符范围。

  • \ w 相当于 [0-9a-zA-Z_ ] 。
  • \d与 [0-9] 相同
  • \` s 匹配 白色空间
  • \ W 任何 不在[0-9a-zA-Z_]中 的东西。
  • \ D 任何不属于数字的东西
  • \ S 任何 不是空格 的东西
  • 点字符 匹配所有内容,但不匹配新行。如果你想搜索 . 字符,那么你必须转义它。

例子 :

# Ruby program of regular expression
   
a="2m3"
b="2.5"
# . literal matches for all character
if(a.match(/\d.\d/))
    puts("match found")
else
    puts("not found")
end
# after escaping it, it matches with only '.' literal
if(a.match(/\d\.\d/))
    puts("match found")
else
    puts("not found")
end
   
if(b.match(/\d.\d/))
    puts("match found")
else
    puts("not found")
end   

输出

match found
not found
match found

雷格斯的修饰语

对于匹配多个字符,我们可以使用修饰语。

  • + 是指 1个或更多的 字符
  • ***** 是指 0个或更多的 字符
  • ? 是指 0或1个字符
  • {x, y} 如果是指 x和y之间的字符数
  • i 是指在匹配文本时忽略大小写。
  • x 表示忽略空格,允许在正则表达式中使用注释。
  • m 表示匹配多行,将换行符作为正常字符识别。
  • u,e,s,n 表示将正则表达式解释为Unicode (UTF-8), EUC, SJIS, 或ASCII。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程