给出以下示例文本:
你好
$NAME$
你好吗?您正在访问此$LOGIN_PAGE$
页面 填写表格并登录。
我想只选择以下“变量”$LOGIN_PAGE$
而不选择$NAME
字符。
我让这个正则表达式尝试实现结果,但它选择了两个字符串
(\$([A-Z\_])+\$)
我在这个正则表达式中缺少哪一部分?
答案 0 :(得分:1)
下面的正则表达式只匹配字符串,该字符串只有大写字母用下划线符号分隔,其中字符串的开头和结尾是$
,
\$[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$