php 正则表达式失败
php Regular expression fails
我正在尝试匹配字符串,但它会进入最后一个 else 循环。你能提供任何帮助吗?
$cstg = "<result>True<\/result>";
if (preg_match("/<result>True<\/result>/", $cstg)) {
echo "result success";
}
else if (preg_match("/\<result\>False\<\/result\>/", $cstg)) {
echo "result fail";
}
else {
echo "Something went wrong.";
}
问题来自您的 $cstg
字符串。您不必在 html 文本中转义 \ 。所以下面的代码工作正常:
$cstg = "<result>True</result>";
if( preg_match("/<result>True<\/result>/", $cstg)){
echo "result success";
}
elseif (preg_match("/\<result\>False\<\/result\>/", $cstg)){
echo "result fail";
}else{
echo "Something went wrong.";
}
定义$cstg
时不需要转义'/'
。当我从 $cstg
中删除转义符时,您的示例运行正确。要指出的另一件事是,您不需要在 prce_match()
中转义 <
和 >
。此代码对我有用:
<?php
$cstg = "<result>True</result>";
if (preg_match("/<result>True<\/result>/", $cstg))
{
echo "result success";
}
elseif (preg_match("/<result>False<\/result>/", $cstg))
{
echo "result fail";
}
else
{
echo "Something went wrong.";
}
您可以看到您将文字 '\'
放入 $cstg
中,如下所示:
<?php
$cstg = "<result>True<\/result>";
echo $cstg;
输出:
<result>True<\/result>
$cstg ="<result>True</result>";
$find="<result>False<\/result>";
if( preg_match("/$find/", $cstg)){
echo "result success";
}
elseif (preg_match("/$find/", $cstg)){
echo "result fail";
}else{
echo "Something went wrong.";
}
我正在尝试匹配字符串,但它会进入最后一个 else 循环。你能提供任何帮助吗?
$cstg = "<result>True<\/result>";
if (preg_match("/<result>True<\/result>/", $cstg)) {
echo "result success";
}
else if (preg_match("/\<result\>False\<\/result\>/", $cstg)) {
echo "result fail";
}
else {
echo "Something went wrong.";
}
问题来自您的 $cstg
字符串。您不必在 html 文本中转义 \ 。所以下面的代码工作正常:
$cstg = "<result>True</result>";
if( preg_match("/<result>True<\/result>/", $cstg)){
echo "result success";
}
elseif (preg_match("/\<result\>False\<\/result\>/", $cstg)){
echo "result fail";
}else{
echo "Something went wrong.";
}
定义$cstg
时不需要转义'/'
。当我从 $cstg
中删除转义符时,您的示例运行正确。要指出的另一件事是,您不需要在 prce_match()
中转义 <
和 >
。此代码对我有用:
<?php
$cstg = "<result>True</result>";
if (preg_match("/<result>True<\/result>/", $cstg))
{
echo "result success";
}
elseif (preg_match("/<result>False<\/result>/", $cstg))
{
echo "result fail";
}
else
{
echo "Something went wrong.";
}
您可以看到您将文字 '\'
放入 $cstg
中,如下所示:
<?php
$cstg = "<result>True<\/result>";
echo $cstg;
输出:
<result>True<\/result>
$cstg ="<result>True</result>";
$find="<result>False<\/result>";
if( preg_match("/$find/", $cstg)){
echo "result success";
}
elseif (preg_match("/$find/", $cstg)){
echo "result fail";
}else{
echo "Something went wrong.";
}