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

回到顶部