Regex 正则表达式中的正则表达式是什么;正则表达式;什么意思?

Regex 正则表达式中的正则表达式是什么;正则表达式;什么意思?,regex,perl,parsing,tokenize,Regex,Perl,Parsing,Tokenize,短语“正则表达式”中的“正则”是什么意思 我听说正则表达式曾经是正则的,但不再是正则表达式中的正则表达式,因为它与 的概念与引擎所称的正则表达式截然不同。PCRE和其他类似的引擎具有和等功能,使它们能够匹配非常规语言。它来自常规语言。这是形式语言理论的一部分。查看其他正式语言。这表示它是一种常规语言 正则表达式仍然很流行。有些人不喜欢它们,但它们仍然是一种快速简单(如果你知道如何使用它们)的方式来匹配特定类型的字符串。另一种方法通常是在字符串中循环几行代码,然后提取所需的位,这就更糟糕了 我仍然

短语“正则表达式”中的“正则”是什么意思

我听说正则表达式曾经是正则的,但不再是正则表达式中的正则表达式,因为它与


的概念与引擎所称的正则表达式截然不同。PCRE和其他类似的引擎具有和等功能,使它们能够匹配非常规语言。

它来自常规语言。这是形式语言理论的一部分。查看其他正式语言。这表示它是一种常规语言

正则表达式仍然很流行。有些人不喜欢它们,但它们仍然是一种快速简单(如果你知道如何使用它们)的方式来匹配特定类型的字符串。另一种方法通常是在字符串中循环几行代码,然后提取所需的位,这就更糟糕了

我仍然经常使用它们(完全是双关语),给你一个用例,前几天我用它来匹配吉他和弦的线条,而不是歌词。它们还常用于电子邮件地址的基本验证等

它们当然没有死。

我认为它来自于正则表达式所描述的语法类的术语:正则语法(或“正则”语言)。这个词从何而来的答案很可能是访问维基百科


现代正则表达式引擎实现了所有那些奇特的前瞻性、模式重新匹配和子表达式计数功能,它们正在识别一类语法,这是规则语法的超集。“经典”正则表达式以机械方式与称为“有限自动机”的理论机器相对应。这本身就是一个非常有趣的主题。

OP没有暗示它们不再被使用,只是说它们不再是正则的,其他人已经证实了这一点。正则表达式有哪些方面不是正则的吗?/设计的目的不仅仅是为了匹配常规语言?所以我想在BRE时代,它仍然是常规语言。没有条件。然后添加了条件句。。因此,他们在技术上能够匹配不规则语言。这听起来对吗?@barlop不,POSIX BRE有反向引用,反向引用是一个不规则的功能。@霍布斯,我想反向引用也不适合不规则语法,尽管它们与解析无关,它们是用来替换的。用语法替换怎么办?它根本不是为了遵循语法,所以它不像条件句或语法lookahead@barlop:反向引用也用于匹配——例如,
/(\d)\1\1/
匹配同一数字中的三个。默认情况下,某些工具使用理论上正确的DFA引擎,但如果正则表达式包含反向引用,则切换到NFA引擎。ref:@barlop POSIX“标准化”了regex,因为它们已经在一百万个地方使用过,而且许多实现都使用了反向引用。编号的捕获组存在于V6 Unix
ed
(1975)中,编号的反向引用存在于V7 Unix
ed
(1979)中。也许其他人想做一个更彻底的提前工作,但我的理解是ed是regexes的最初发布者。V6和V7 Unix
grep
都被简单地记录为接受相同的正则表达式
ed
does.:)