如何称呼正则表达式的内部?(由分隔符分隔的那个) [英] How do you call the inner part of a regex? (the one delimited by the delimiters)

查看:42
本文介绍了如何称呼正则表达式的内部?(由分隔符分隔的那个)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在没有分隔符的情况下调用正则表达式的内部部分?

例如:

给定以下正则表达式:/d+/#(hello)#,我们可以将每个正则表达式分为3个部分:

  • /+d++/
  • #+(hello)+#

我们都将/#命名为分隔符。

内部怎么称呼?d+(hello)部分?

在这里引用的这个BnFhttps://www2.cs.sfu.ca/~cameron/Teaching/384/99-3/regexp-plg.html中,它们似乎调用了内部的正则表达式。如果是这样,那么如何调用连接了分隔符的正则表达式?

问这个问题的原因是Clean Code规则。我正在编写一个记号赋值程序,我需要用正确的名称清楚地命名";Full Thing&Quot;和";Inside Thing&Quot;。

推荐答案

regex delimitersdelimit the following parts

<action>/<pattern>(/<substituiton>)/<modifiers>

操作

Regex分隔符结构的这一部分包含有关regex将执行的操作的隐式(无字符)或显式(用字符表示)信息:匹配、替换,有时甚至是像在Vim中那样对整个文件起作用。在POSIX工具上下文中,操作也称为commands(或operators)。通常操作字符是sm,代表match。

模式 第二部分,您称之为内部-称为模式(请参阅perlop reference)。在描述$var =~ m/mushroom/表达式时,此参考解释如下:

括在‘/’字符中的部分表示我们要查找的特征。我们使用术语模式来表示它。

因此,当我们说";regex";或";regexp";时,我们基本上是指正则表达式模式

替代

此部分仅存在于%s替换结构中,以s操作/命令为前缀。替换模式语法与正则表达式模式语法非常不同,因为它们通常可以包含命名或编号的反向引用、用于取消反向引用语法的转义序列(参见。"dollar escaping"),有时还会更改大小写运算符(如lL...EuU...E)。

修饰符

也是called flags,这些部分帮助微调正则表达式引擎匹配模式的过程。最常见的修饰符是i不区分大小写标志、g全局匹配标志、s单行/doall修饰符(在NFA正则表达式中使用m,而不是Onigmo/Oniguruma))。

这篇关于如何称呼正则表达式的内部?(由分隔符分隔的那个)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆