正则表达式/“正则表达式”中的常规是什么意思?

时间:2011-01-26 14:47:49

标签: regex perl parsing tokenize

“正则表达式”一词中的“常规”是什么意思?

我听说有一次正规用法是正规的,但不再是

4 个答案:

答案 0 :(得分:11)

正则表达式中的常规来自与regular language匹配。

regular expressions used in formal language theory的概念与PCRE之类的引擎调用正则表达式完全不同。 PCRE和其他类似引擎具有lookaheadconditionalsrecursion等功能,可以匹配非常规语言。

答案 1 :(得分:4)

它来自常规语言。这是形式语言理论的一部分。查看Chomsky hierarchy了解其他正式语言。

答案 2 :(得分:1)

这表明它是一种常规语言。

正则表达仍然很受欢迎。有些人对它们皱眉但是它们仍然快速简单(如果你知道如何使用它们)匹配某些类型的字符串的方式。替代方案通常是通过字符串循环并提取您需要的比特的几行代码,这是非常糟糕的!

我仍然会在常规(双关语)的基础上使用它们,为你提供一个用例,我前几天用它来匹配吉他和弦,与歌词相对。它们也常用于电子邮件地址的基本验证等。

他们肯定没死。

答案 3 :(得分:1)

认为它来自正则表达式描述的语法类的术语:常规语法(或“常规”语言)。 这个术语的来源可能来自维基百科之旅。

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