繁体   English   中英

正则表达式-回显字符串的第一个字符

[英]Regex - Echoing the first character of a string

我尝试回显“ SiteName”的第一个字母,但遇到了一些困难,下面的表达式返回“ 1”而不是“ S”。

// $sitename = $GLOBALS["AL_CFG"]["siteName"];

$sitename = "SiteName.com";
$sitename1 = preg_match("/.{0,1}/", $sitename);
echo $sitename1;

谢谢您的帮助。

这是因为preg_match()返回一个值,该值指示匹配是否成功,而不是实际匹配本身。 要访问匹配项,您需要指定第三个参数,即一个数组,您要在其中存储匹配项:

$sitename1 = preg_match("/.{0,1}/", $sitename, $matches);
print_r($matches);
echo $matches[0]; // => 'S'

无论如何,如果您只是想获取给定字符串的第一个字符, 则根本不需要使用正则表达式 您可以简单地将字符串作为字符数组访问:

PHP文档

可以通过使用方括号将字符串后的字符串指定为所需字符的从零开始的偏移量来访问和修改字符串中的字符,如$str[42] 为此,可以将字符串视为字符数组。 要提取或替换多个字符时,可以使用函数substr()substr_replace()

因此,要从$sitename获取第一个字符,您应编写:

echo $sitename[0]; // => 'S'

如果您仅尝试捕获字符串中的第一个字符,则无需使用正则表达式。

$sitename = "SiteName.com";
$letter = substr($sitename, 0, 1);
echo $letter; // prints "S"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM