PHP:preg_match; 无法匹配英镑符号

Mar*_*utt 5 php regex

我真的一直在为此绞尽脑汁,因为对于我的一生,我无法弄清楚问题出在哪里。

我有一些要在其上运行正则表达式的数据。作为参考,原始文档使用iso-8859-15进行编码(如果有区别的话)。

这是一个使用正则表达式的函数;

if(preg_match("{£\d+\.\d+}", $handle)) // 
{
    echo 'Found a match';

}
else
{
    echo 'No match found';
}
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,我似乎都无法匹配它。我已经尝试过搜索£符号。我已经检查了正则表达式,并且没有任何问题。我什至将源数据直接粘贴到正则表达式测试器中,它可以找到与我要查找的内容完全匹配的内容。我只是不明白为什么我的正则表达式不起作用。我已经查看了要搜索的字符串中的原始数据,并且£符号清晰可见。

我感觉到那里有些编码字符我看不到,但是无论我如何输出数据,我只能看到£符号,但是无论出于何种原因都无法识别它。

有任何想法吗?是否存在查看字符串中原始数据的绝对方法?我尝试了var_dump和var_export,但是我确实感觉有些不对劲,因为var_export确实以另一种语言显示数据。如何查看变量中的“真正”内容?

我什至将内容保存到txt文件中。英镑在那里。应该没有理由不能使用正则表达式找到它。我就是不明白。如果我创建一个字符串并粘贴到我的正则表达式中,那么它会找到匹配的字符串而不会出现任何问题。

真是莫名其妙。

Sam*_*ook 4

你总是可以改变这封信:

\n\n
$string = \'\xc2\xa3100.00\';\nif(preg_match("/\\xa3/",$string)){\n    echo \'match found\';\n}else{\n    echo \'no matches\';\n}\n
Run Code Online (Sandbox Code Playgroud)\n