2011-10-24 169 views
5

我正在讀東西,提到前綴正則表達式,並以網站爲例/^joey/什麼是前綴正則表達式?

什麼是前綴正則表達式?這是否意味着它始於一個插入符號?

回答

-2

這不是一個標準術語。無論是誰寫的,顯然意味着只有在目標文本開始時才匹配的正則表達式,正如其他響應者所說的那樣。插入符號通常用於此目的,但它也可以表示邏輯行的開始,如果匹配正在多行模式下執行。許多正則表達式風格支持與文本最開始匹配的其他構造,而不管匹配模式如何,\A是其常用形式。

欲瞭解更多詳情,read this

4

在正則表達式^在一個正則表達式來開始,「打頭」

/^joey/ 

因此將"joey""joeyjoey""joey and jane"

+0

該操作並不是要求^的含義。問題是「什麼是前綴正則表達式」 – Programmer

1

插入符號意味着你匹配匹配以開頭的字符串因爲字符串以「joey」開頭,但不是「Joey在嗎?」,因此例如/^joey /的字符串的開始將匹配「joey is there」。因爲喬伊正處在句子的中間。

+0

您可以複製下面的答案併發布它:P – Programmer

+2

嗯,我在寫另一個答案的時候,答案是:)我的方式包含一個反例:P –

6

甲前綴正則表達式(PRE)被遞歸

  • 空集ø端空字符串 「定義的」 - 是的PRE
  • 對於字母表中每個符號中的, 「a」 是一個PRE
  • 如果p和q分別是表示正規集合P和Q的PRE,則r是表示正則集合R的正則表達式,使得e屬於R,並且x屬於S,則以下表達式也是PRE:
    • p + q(聯合)
    • xp(連接符號x在左邊)。
    • PR(串聯與右側電子普通)
    • P *(星號)。

這個定義是從「快速文本搜索正則表達式或 自動機搜索上嘗試次數」的工作由RICARDO A. BAEZA - 耶茨和GASTON H.貢內特

換句話說PRE採取的手段正則表達式語言L只有一些固定的前綴字符串。 abc。* - 是PRE (A | B)cd - 不是PRE