加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 什么是触发器操作符?

发布时间:2020-12-16 20:30:27 所属栏目:百科 来源:网络整理
导读:最近在Perl和Ruby中听到过有关正则表达式的触发器的阅读,但是我无法找到它们的工作原理,以及常见的用例. 任何人都可以用语言无关的方式解释这个问题吗? 现在我明白了它是什么,它是如何工作的,我会把这个问题简单地说一下:什么是触发器操作符? 解决方法 当
最近在Perl和Ruby中听到过有关正则表达式的触发器的阅读,但是我无法找到它们的工作原理,以及常见的用例.

任何人都可以用语言无关的方式解释这个问题吗?

现在我明白了它是什么,它是如何工作的,我会把这个问题简单地说一下:什么是触发器操作符?

解决方法

当左操作数为真时,Perl中的触发器操作符将计算为真,并保持评估为true,直到正确的操作数为真.左右操作数可以是任何形式的表达式,但大多数情况下,它与正则表达式一起使用.

使用正则表达式,它可用于查找两个标记之间的所有行.这是一个简单的例子,显示它是如何工作的:

use Modern::Perl;

while (<DATA>)
{
    if (/start/ .. /end/)
    {
        say "flip flop true: $_";
    }
    else
    {
        say "flip flop false: $_";
    }
}

__DATA__
foo
bar
start
inside
blah
this is the end
baz

触发器操作符对于从开始到结束的所有行都将是真实的.

运算符的两点版本允许在同一行上匹配第一个和第二个正则表达式.所以,如果你的数据看起来像这样,上面的程序将只是对于线开始blah结束:

foo
bar
start blah end
inside
blah
this is the end
baz

如果您不希望第一个和第二个正则表达式匹配相同的行,则可以使用三点版本:if(/ start / … / end /).

请注意,应注意不要将触发器运算符与范围运算符混淆.在列表上下文中,..有一个完全不同的功能:它返回一个顺序值的列表.例如

my @integers = 1 .. 1000; #makes an array of integers from 1 to 1000.

我不熟悉Ruby,但Lee Jarvis’s link表示它的工作原理类似.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读