preg_match 在生成器中有效,但在脚本中无效
preg_match works in builder, but not in script
我正在创建一个正则表达式
https://www.phpliveregex.com/#tab-preg-match
代码如下:
$input_line = 'Sector(s) : Basic Materials Industry : Gold Full-time employees : ';
preg_match('/Industry : (.*) Full-time employees :/', $input_line, $output_array);
在在线工具中,结果符合预期,是“黄金”。
然而在我的代码中这并没有发生:
echo preg_match('/Industry : (.*) Full-time employees :/', $arr[5], $industry_arr);
returns0.
数组 $arr 如下所示:
Array ( [0] => [1] => [2] => [3] => [4] => [5] => Sector(s) : Basic Materials Industry : Gold Full-time employees : [6] => [7] => )
虽然在开发人员工具中我的数组看起来像这样,但我感到困惑:
(
[0] =>
[1] =>
[2] =>
[3] =>
[4] =>
[5] => Sector(s) : Basic Materials
Industry : Gold
Full-time employees :\
[6] =>
[7] =>
)
如果我执行 echo $arr[5],我会得到以下信息:
Sector(s) : Basic Materials Industry : Gold Full-time employees :
我想知道非中断 space 是否导致这里出现问题?
提前致谢
问题出在   字符上。
很遗憾,此处发布的解决方案不起作用
https://www.php.net/manual/en/function.trim.php
有效的是:
$string = htmlentities($arr[5], null, 'utf-8');
$clean_string = str_replace(" ", "", $string);
$clean_string = html_entity_decode($clean_string);
我在这里找到的:
replace characters that are hidden in text
这会将字符串清理为“正常”字符串,并且 运行 正则表达式按预期工作。
我正在创建一个正则表达式 https://www.phpliveregex.com/#tab-preg-match
代码如下:
$input_line = 'Sector(s) : Basic Materials Industry : Gold Full-time employees : ';
preg_match('/Industry : (.*) Full-time employees :/', $input_line, $output_array);
在在线工具中,结果符合预期,是“黄金”。
然而在我的代码中这并没有发生:
echo preg_match('/Industry : (.*) Full-time employees :/', $arr[5], $industry_arr);
returns0.
数组 $arr 如下所示:
Array ( [0] => [1] => [2] => [3] => [4] => [5] => Sector(s) : Basic Materials Industry : Gold Full-time employees : [6] => [7] => )
虽然在开发人员工具中我的数组看起来像这样,但我感到困惑:
(
[0] =>
[1] =>
[2] =>
[3] =>
[4] =>
[5] => Sector(s) : Basic Materials
Industry : Gold
Full-time employees :\
[6] =>
[7] =>
)
如果我执行 echo $arr[5],我会得到以下信息:
Sector(s) : Basic Materials Industry : Gold Full-time employees :
我想知道非中断 space 是否导致这里出现问题?
提前致谢
问题出在   字符上。
很遗憾,此处发布的解决方案不起作用 https://www.php.net/manual/en/function.trim.php
有效的是:
$string = htmlentities($arr[5], null, 'utf-8');
$clean_string = str_replace(" ", "", $string);
$clean_string = html_entity_decode($clean_string);
我在这里找到的: replace characters that are hidden in text
这会将字符串清理为“正常”字符串,并且 运行 正则表达式按预期工作。