选择正则表达式中具有特定字符的字符串

时间:2014-07-19 16:39:18

标签: php regex

给出以下示例文本:

  

你好$NAME$你好吗?您正在访问此$LOGIN_PAGE$页面   填写表格并登录。

我想只选择以下“变量”$LOGIN_PAGE$而不选择$NAME字符。

我让这个正则表达式尝试实现结果,但它选择了两个字符串

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

我在这个正则表达式中缺少哪一部分?

1 个答案:

答案 0 :(得分: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$