2014-07-19 189 views
1

鑑於例如下列文字:選擇字符串特定字符的正則表達式

你好$NAME$你怎麼樣?您正在訪問此頁面$LOGIN_PAGE$,請 填寫表格並登錄。

我只需要選擇下面的「變量」 $LOGIN_PAGE$沒有選擇甚至$NAME字符。

我做了這個正則表達式試圖達到的結果,但它選擇了字符串

(\$([A-Z\_])+\$) 

哪一部分我失去了在這個正則表達式?

+1

爲什麼不使用'(\ $ LOGIN_PAGE \ $)'? – Braj

+0

'str_replace('$ LOGIN_PAGE $','/ login',$ haystack)'也許? –

+0

更喜歡正則表達式更多特殊字符串 – Fabrizio

回答

1

下面的正則表達式將只匹配它只有用下劃線符號在字符串的開始和結束是$分離大寫字母串,

\$[A-Z]+_[A-Z]+\$ 

DEMO

你的PHP代碼將是,

<?php 
$data = 'Hello $NAME$ how are you? You are visiting this $LOGIN_PAGE$ page, please fill the form and log in.' ; 
$regex = '~\$[A-Z]+_[A-Z]+\$~'; 
if (preg_match($regex, $data, $m)) { 
    $yourmatch = $m[0]; 
    echo $yourmatch; 
    } 
?> //=> $LOGIN_PAGE$ 
相關問題