我無法獲得正好匹配單個字符的正則表達式。僅用於匹配單個字符的正則表達式
$strings=array('hgasdfgh','a','1','addsa');
foreach($strings as $string)
{
$result=preg_match('/[a-z]/',$string);
if($result)
echo "match";
else
echo "no";}
此代碼與第1個第2和第4個字符串數組匹配。但我需要它與第二項(任何角色)匹配。
我無法獲得正好匹配單個字符的正則表達式。僅用於匹配單個字符的正則表達式
$strings=array('hgasdfgh','a','1','addsa');
foreach($strings as $string)
{
$result=preg_match('/[a-z]/',$string);
if($result)
echo "match";
else
echo "no";}
此代碼與第1個第2和第4個字符串數組匹配。但我需要它與第二項(任何角色)匹配。
試試這個表達
^[a-z]$
^
表示字符串和$
它的結束的開始。
感謝@ComFreek的幫助。它的工作 –
感謝**你,現在,我有1004的聲望,並獲得了'創建畫廊聊天'的特權;) – ComFreek
/[a-z]/
那麼這是什麼意思?匹配a-z中的單個字符。
除第3個之外的所有數組條目滿足此要求。因此全部匹配。
現在,如果你是在其兩端錨你的正則表達式:
/^[a-z]$/
它只會匹配字符串的開頭,後跟一個字母,然後是字符串的結尾,即在你的第二個項目陣列。
編輯:
您要求的^內外支架的區別:
當^
是支架外,單獨就意味着該字符串的開頭。如果你逃脫它\^
它意味着匹配字符^字面。
當^
是支架(S)如內:
[^a-z]
它有效地否定了這種字符,這意味着你應該匹配的東西是不是在蘭斯a-z
一個字符。因此,這可以匹配,例如9
,A
,#
等等。最後,當^
是一個字符類中而不是在第一位置:
[a-z^]
它失去了它的否定的特殊含義,它是一個文本字符^
。所以角色類現在可以匹配範圍爲a-z或^
的單個字符。
你能告訴我^支架內外的區別嗎? –
@PrakashNeupane檢查我更新的答案。 – FailedDev
你能幫我在這種情況下:
$strings="ram is addsa boy"; $a="ram";$ result = preg_match('/^'.$ a。'$ /',$字符串); if($ result) echo「match」; else echo「no」; 如何在此處表示此變量 –
你爲什麼不給我們一些例子? – ThiefMaster
爲什麼你不通過做這樣的if語句來檢查字符串是否完全是'a'if($ string ==='a')'? –
@KemalKernal因爲它也應該匹配所有其他字符。 – ComFreek