2015-05-29 92 views
0

我想。基本上的preg_match一個字符串,如果我得到這是考慮到一個變量如何檢查某個字符串是否在字符串的開頭?

$line = " <szFilename> &#6; ds </szFilename> " 

一個字符串,我需要檢查,如果蜇與"<szFilename>" . 我發現很難找到的模式開始。 我試過的是

$line=" <szFilename> &#6; ds </szFilename> "; 
//$line2=" <szFilenamed1> &#6; ds </szFilenamed1> "; 
//echo trim($line); 
if(preg_match("/[<szFilename>]*/",trim($line))){ 
    echo "GOT IT"; 
} 

任何幫助嗎?

+0

我們這個問題在哪裏? – Rizier123

回答

4

這裏不需要正則表達式。只需簡單地使用strpos()來確定該字符串是否處於開始(索引0)或不是,例如,

if(strpos(trim($line), "<szFilename>") === 0) { 
    echo "success"; 
} 

如果你想/需要使用正則表達式,只需使用一個anchor^)在開始時,如您正則表達式匹配

if(preg_match("/^<szFilename>/", trim($line))) { 
    echo "success"; 
} 

此外,如果你正在寫自己的正則表達式的,我強烈推薦這個網站:https://regex101.com/,它很好地突出了一切,你會得到一個很好的解釋的權利,你的正則表達式做什麼。

+1

使用'strpos(...)=== 0'來避免當strpos()返回false時的情況 –

+0

謝謝你的工作 –

+0

@PhilemonphilipKunjumon不客氣。祝你今天愉快 :) – Rizier123

2

只需'/^\s*<szFilename>.+/'是您所需要的。

相關問題