2015-10-14 73 views
-4
if(preg_match('/[^a-z\-0-9]/i', $value)) 

    { 
    echo "<META HTTP-EQUIV='Refresh' Content='0; URL=http://$ponka/name/error'>"; 
} 

如何在上面的代碼中包含點和連字符? 我知道如何在代碼中添加點或連字符,這是if-yes-then-if-then-else。這個代碼是if-no-then-if-then-else(如果你有我想說的話)在正則表達式中包含點(。)和連字符( - )

+0

您的名字你是多麼正義。 – frosty

+0

@confusedmammal,你的問題不是很清楚。您可以閱讀http://stackoverflow.com/help/how-to-ask獲取有關詢問優秀問題的一些指導。關鍵是將問題簡化爲最簡單的形式 - 你問的是關於php的正則表達式,並且你希望你的正則表達式匹配點和連字符(或者類似的東西,對吧?) – alexanderbird

回答

5

連字符不需要如果是字符類中的第一個或最後一個,則需要轉義。
該點也需要逃脫如果一個字符類中[]即:

/[^a-z.0-9-]/i 

注:

字符類中的元字符爲:

^ (negation) 
- (range) 
] (end of the class) 
\ (escape char) 
+0

我已經澄清了我自己的答案,而不是整體論證。 – Martin

2

連字符已經在那裏,只需使用\.添加一個轉義點。

/編輯:但正如註釋中指出的那樣,不需要轉義。

+1

'.'不需要在角色類中逃脫。 – chris85

0

假設你在談論正則表達式,你用斜槓\逃脫。

/[^a-z\.\-0-9]/i 
0

連字符並不需要,如果是正則表達式組中的最後字符進行轉義。但點應始終逃脫,所以

'/[^a-z\.0-9-]/i' 

將檢查a到z0至9-按照該順序,不區分大小寫。

+1

'.'不需要在角色等級中轉義。 '在大多數正則表達式中,字符類中唯一的特殊字符或元字符是右括號(]),反斜線(\),插入符號(^)和連字符( - )。 .regular-expressions.info/charclass.html – chris85

相關問題