Ruby中的正则表达式

Ruby正则表达式

正则表达式是一系列字符,用于定义模式以执行特定搜索。它也可以被称为一种能说明文本模式的语言。regexp也知道它。正斜杠用于写入模式。

正则表达式的基本语法如下:

    /search string/

要进行模式匹配,您将必须使用〜=#match运算符。现在让我们大致了解每种方法。

〜=运算符

它是一个基本的模式匹配运算符,它消耗两个操作数,即模式或正则表达式以及一个字符串。毫无疑问,正则表达式与字符串匹配。如果模式匹配,则运算符返回整数值,否则返回nil。该整数值不过是第一个匹配项的索引。让我们借助一个支持示例来了解〜=运算符的工作方式:

示例

=begin
Ruby program to demonstrate use of ~= operator.
=end

str1 = "Dreams are not those which we see in night but they are those which do not let us sleep.";
str2 = "Little failures makes you one step closer to success.";

if ( str1 =~ /Dreams/ )
	puts "First string is related to Dreams"
end

if ( str2 =~ /failures/ )
	puts "Second string is related to success"
end

输出结果

First string is related to Dreams
Second string is related to success

如果您已知道.include?的工作方法,然后您可以关联两者的工作之间的相似性。

#match运算符

匹配操作者匹配正则表达式或模式与指定的字符串并且如果模式匹配,否则返回零返回类MatchData的一个实例。

让我们在Ruby代码的帮助下完成其实现。

=begin
Ruby program to demonstrate use of match operator.
=end

str1 = "Dreams are not those which we see in night but they are those which do not let us sleep."
str2 = "Little failures makes you one step closer to success."

puts /Dreams/.match(str1)
puts /failures/.match(str2)

输出结果

Dreams
failures

您必须认为它正在返回字符串,但实际上,它正在返回MatchData类的对象。

现在,让我们获得一些有关正则表达式修改的知识,下面将简要介绍它们。

  • i – i修饰符在匹配文本时忽略大小写(大写或小写)。

  • o –用于执行#{}插值,但仅在第一次检查文字模式时执行一次。

  • x –允许将注释包含在正则表达式中。在评估期间,它也会忽略空格。

  • m –匹配多行并将换行符理解为正常字符。