仅用于匹配单个字符的正则表达式
我无法获得正好匹配单个字符的正则表达式。仅用于匹配单个字符的正则表达式
$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