什么是前缀正则表达式?

Dav*_*ave 6 regex

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

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

Ole*_*leg 6

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

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

这个定义取自RICARDO A. BAEZA-YATES和GASTON H. GONNET的"快速文本搜索正则表达式或自动搜索试验"的工作.

换言之,PRE表示正则表达式,语言L仅具有带有一些固定前缀的字符串.abc.* - 是PRE(A | B)cd - 不是PRE


zel*_*lio 5

在REGEX中^,正则表达式的开头表示“开头为”

/^joey/
Run Code Online (Sandbox Code Playgroud)

因此,将匹配"joey""joeyjoey"或开头的任何字符串"joey and jane"


Ala*_*ore 0

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

有关更多详细信息,请阅读此内容