2014-07-02 131 views
0

如何使用正則表達式找到第一次出現字母(a-z)不區分大小寫的位置?查找字符串中第一個字母的位置

$string = "(232) ABC"; 

我想看到的7號返回A是在7位

我發現以下,但它似乎並沒有對所有的字符串工作:

preg_match("/^[a-z]+$/i", strtolower($tel_current), $matches, PREG_OFFSET_CAPTURE); 

例如它不適用於以下內容:

"(520) 626-1855 kafds r"; 

我只是得到一個空數組。

+1

刪除'^'和'$'從你的正則表達式。 –

+0

爲什麼不使用'strpos()'? http://www.php.net/manual/en/function.strpos.php –

+0

@ JayBlanchard-我知道沒有辦法只匹配使用strpos的字母 – Lock

回答

5

您的意思是?

<?php 
preg_match('/[a-z]+/i', '|Tel: (520) 626-1855 kafds r', $matches, PREG_OFFSET_CAPTURE); 
var_export($matches); 
?> 

輸出:

array (
    0 => 
    array (
    0 => 'Tel', 
    1 => 1, 
), 
) 

要查找的字符串kafds r的位置,

<?php 
preg_match('/(?<=\d)\w+ \w+/i', '|Tel: (520) 626-1855 kafds r', $matches, PREG_OFFSET_CAPTURE); 
var_export($matches); 
?> 

輸出:

array (
    0 => 
    array (
    0 => 'kafds r', 
    1 => 21, 
), 
) 
+0

也許他想獲得'kafds r'的位置,而不是'電話' –

+0

@IanMustafa更新:-) –

+0

謝謝你做的伎倆。對不起,我最初的帖子在有「| Tel:」的例子中是錯誤的 - 這本不應該在那裏。我已經刪除它。再次感謝 – Lock

相關問題