2015-09-24 182 views
0

正則表達式新手在這裏,所以我嘗試這個網站的樂趣:https://regex.alf.nu正則表達式的含義(正則表達式高爾夫)

特別,我很關心的「範圍」一節在這裏:https://regex.alf.nu/2

我能得到儘可能多的^[a-f]+,並找不出其餘的。無意中,我添加了一個$得到^[a-f]+$這實際上是答案。

試圖圍繞這個正則表達式的意義。有人可以給出簡單的英語解釋這裏發生了什麼嗎?

它似乎是說「以字母a到f中的一個或多個字母開頭和結尾的字符串」,但這對我來說不太合理,例如,對於似乎是「cajac」滿足這些條件。

對於那些誰也看不出的URL,它要求我來匹配這些話:

abac 
accede 
adead 
babe 
bead 
bebed 
bedad 
bedded 
bedead 
bedeaf 
caba 
caffa 
dace 
dade 
daff 
dead 
deed 
deface 
faded 
faff 
feed 

但不匹配這些:

beam 
buoy 
canjac 
chymia 
corah 
cupula 
griece 
hafter 
idic 
lucy 
martyr 
matron 
messrs 
mucose 
relose 
sonly 
tegua 
threap 
towned 
widish 
yite 
+0

@iamnotmaynard這不是一個「給我這個代碼」的問題,也不是我的缺乏努力(我提供了我自己的答案)......我只是無法完全理解它,要求更好的解釋。 – skippr

+0

@anubhava cajac不匹配,我意識到這一點。我並不關心這裏的情況,而是爲什麼。 – skippr

回答

1

英文這意指:匹配任何只包含字母的單詞af

+2

啊,好吧,這是有道理的,我誤解了開始和結束於操作員。我看到它的方式是「該字符串必須以一個字母(af)開始,並且必須以多一個字母(af)結尾......在我看來,它似乎適用於」cajac「,它以」 ca「並以」ac「結尾 – skippr

0

你的模式,當分解:

  • ^斷言在字符串的開始位置
  • [a-f]+匹配單個字符存在於下面的列表:

    • +之間一個和無限次,多次地,用之於根據需要
    • a-f A和F之間的範圍中的單個字符(區分大小寫)在所述串的端
  • $斷言位置

您還可以在Regex101網頁上看到您的模式的快速說明。

+0

這就是我對它的理解,但我似乎正在以不同的方式解讀它。我看到它的方式是「該字符串必須以一個或多個字母(af)開始,並且必須以一個或多個字母(af) ......在我看來,它似乎適用於以「ca」開頭並以「ac」結尾的「cajac」 – skippr

+0

@dhira由於您正在錨定您的模式(使用'^'和'$'),它會匹配只有那些滿足錨定條件的字符串 – hjpotter92

+0

https://regex101.com/r/vI4bX8/1 – iamnotmaynard