什么是前缀正则表达式?

时间:2011-10-24 16:48:18

标签: regex

我正在阅读提到前缀正则表达式的内容,并将网站作为示例/ ^ joey /

什么是前缀正则表达式?这是否意味着它以插入符号开头?

4 个答案:

答案 0 :(得分:6)

以递归方式定义前缀正则表达式(PRE)

  • 空集ø结空字符串“” - 是PREs
  • 对于字母表中的每个符号a,“a”是PRE
  • 如果p和q分别是表示正则集P和Q的PRE,则r是表示规则集R的正则表达式,使得e属于R,并且x属于S,则以下表达式也是PRE:
    • p + q(联盟)
    • xp(与左侧符号x连接)。
    • pr(与右边的电子常规连接)
    • p *(星级)。

此定义取自“快速文本搜索正则表达式或 自动搜索“尝试”由RICARDO A. BAEZA-YATES和GASTON H. GONNET工作

换句话说,PRE表示正则表达式,语言L只包含具有一些固定前缀的字符串。 abc。* - 是PRE (A | B)cd - 不是PRE

答案 1 :(得分:4)

在正则表达式开头的REGEX ^中的

意味着“开始于”

/^joey/

因此会匹配任何以"joey"开头的字符串,例如"joeyjoey""joey and jane"

答案 2 :(得分:1)

插入符表示你匹配字符串的开头,例如/ ^ joey /将匹配“joey is there”,因为字符串以“joey”开头而不是“joey around?”因为乔伊正处于句子的中间。

答案 3 :(得分:-2)

这不是一个标准术语。无论是谁写的,都显然意味着只在目标文本的开头匹配的正则表达式,正如其他响应者所说的那样。插入符号通常用于此目的,但如果在多行模式下执行匹配,它也可以表示逻辑行的开头。许多正则表达式都支持与文本的开头匹配的附加构造,而不管匹配模式如何,\A是其常用形式。

有关详细信息,请read this