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

Php 选择正则表达式中具有特定字符的字符串,php,regex,Php,Regex,给出以下示例文本: 你好$NAME$你好吗?您正在访问此$LOGIN\u页面$页面 填写表格并登录 我只想选择以下“变量”$LOGIN\u PAGE$,甚至不选择$NAME字符 我让这个正则表达式试图获得结果,但它同时选择了两个字符串 (\$([A-Z\_])+\$) 此正则表达式中缺少哪一部分?下面的正则表达式将仅与字符串匹配,该字符串只有由下划线符号分隔的大写字母,其中字符串的开头和结尾为$ \$[A-Z]+_[A-Z]+\$ 你的PHP代码是 <?php $data = 'He

给出以下示例文本:

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

我只想选择以下“变量”
$LOGIN\u PAGE$
,甚至不选择
$NAME
字符

我让这个正则表达式试图获得结果,但它同时选择了两个字符串

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

此正则表达式中缺少哪一部分?

下面的正则表达式将仅与字符串匹配,该字符串只有由下划线符号分隔的大写字母,其中字符串的开头和结尾为
$

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

你的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$
/=>$LOGIN\u页面$

为什么不使用
(\$LOGIN\u PAGE\$)
str\u替换(“$LOGIN\u PAGE$”、“/LOGIN'、$haystack)
也许吧?对于更特殊的字符串,更喜欢正则表达式。不清楚如果字符串是常量,那么为什么要使用正则表达式。