我有一个看起来很正常的字符串(如果有任何区别,则取自 MySQL 数据库):
Manufacture: <a href="http://www.x.com/">Blah</a>
问题是标签之间的空间Manufacture:
有<a>
一个 194 的字符码,而不是我期望的 32。
这导致preg_match
具有以下模式的 a 失败(请忽略使用正则表达式解析 HTML 的尝试,我知道这不是一个好主意,但这个特定的数据集是可以预测的,足以摆脱它):
/Manufacture: *(<a[^>]*>([A-Za-z- 0-9]+)<\/a>)/i
如果我在文本编辑器中用普通空格字符替换流氓空格并重试,表达式会按预期匹配,但我需要以编程方式对其进行更改。
我试过str_replace
:
$text = str_replace(chr(194), ' ', $text);
但preg_match
仍然失败。然后我尝试了preg_replace
:
$text = preg_replace('/[\xC2]/', ' ', $text);
但这也不起作用,即使运行相同的模式preg_match
确实包含预期的匹配。
有没有人有任何想法?