2013-07-06 57 views
3

什麼是正則表達式「[a-z0-9] \ +」假設是指?或者具體說這裏「\」是什麼意思?這是正確的世界上沒有符合該正則表達式的字符串?正則表達式中斜槓的含義是什麼?

+2

我很困惑,爲什麼要添加標記「正則表達式,lookarounds」 ......你能澄清可能? – Jerry

+0

BRE? ERE?或PCRE? – Kent

+0

已刪除,請將其添加 – KaramJaber

回答

2

\[a-z0-9]\+表示文字加字符。這是必要的,因爲沒有斜線,+將是one-or-more quantifier

比較:

  • [a-z0-9]\+拉丁小寫字母或數字後跟一個加,例如匹配y+
  • [a-z0-9]+匹配一個或多個拉丁文小寫字母或數字,例如, xy4
0

它使「+」成爲文字+符號。這將匹配任何與第一個範圍相匹配的字符,後跟+號,如c+5+

沒有斜線,+表示「一個或多個出現」,因此字符串如abc,t63

0

此處的斜槓(「\」)用於轉義++在正則表達式中有一個特殊的含義:它意味着重複前置項目一次或多次。

  • [a-z0-9]\+表示:匹配一個字母數字字符和一個加號(「+」)
  • [a-z0-9]+表示:匹配一個或多個字母數字字符

你可以找到正則表達式的詳細信息量詞here
你可能也想看看這個Regular Expression Basic Syntax Reference

0

反斜槓(\)轉義特殊字符來壓制它們的特殊含義。所以這裏刪除了+的特殊含義。它被認爲只是一個符號。 +的通常含義是重複前面的塊1或更多次。

所以在這種情況下[a-z0-9]\+意味着一個小寫字母或一個十進制數字加一個+。 a+,b+,0+,1+等都是這個正則表達式的有效表達式。

5

這很難說。它取決於您使用哪個RE(BRE?ERE?或PCRE)

如果您使用BRE,\給出+特殊含義。

如果您使用ERE/PCRE,\需要+以外的特殊含義。

一個例子是明確的(使用grep的BRE,默認):

kent$ echo "aaaaaa+"|grep -o 'a+' 
a+ 

kent$ echo "aaaaaa+"|grep -o 'a\+' 
aaaaaa 

kent$ echo "aaaaaa+"|grep -oE 'a\+' 
a+ 

kent$ echo "aaaaaa+"|grep -oE 'a+' 
aaaaaa 
相關問題