PHP的正则表达式不匹配UTF-8解码的字符串
我遇到了一些regex
语句的问题。我不确定它为什么这样做,但我认为它可能与字符编码有关。PHP的正则表达式不匹配UTF-8解码的字符串
所以我使用curl从网站接收页面内容。然后,我使用domXPath
查询来获取某个元素,然后从该元素获取其内容,然后从该内容执行regex
语句。但regex
声明不起作用,我不知道为什么。
这是我从元件接收:
X: asdasdfgdgdrrY: dfgdfgfgZ: ukuykyukjghj a B 7dd.
现在,当我尝试使用此代码匹配它:
/X: (?P<x>.*)Y: (?P<y>.*)Z: (?P<z>.*)\s*(?P<a>[a-zA-Z]+) (?P<b>[a-zA-Z]+) (?P<c>[0-9]+)dd/
我在Dreamweaver中测试了这一点,它让我有相匹配不知道它会不会在网上
而且我收到的页面具有UTF-8的内容,
我试图将内容转换使用
iconv('utf-8', 'ISO-8859-1//IGNORE', $td->item(0)->nodeValue);
删除UTF-8字符,如果我不删除UTF-8字符还有的“a”之后怪异Á
符号,“B”和' c'变量值。
回答:
好吧,我想通了, 我不得不这样做才能摆脱这些无形的无效字符为:
$value = preg_replace("/[^a-zA-Z0-9 %():\$.\/-]/",' ',$value);
预简单,只是取代wasnt有效,用空格或空白的任何字符。在我的情况下,我用空间,因为它出现了一些空格是无效的。
以上是 PHP的正则表达式不匹配UTF-8解码的字符串 的全部内容, 来源链接: utcz.com/qa/260818.html