簡體   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