使用动作脚本清除来自未知字符的xml推文

时间:2014-09-29 20:07:20

标签: xml regex actionscript-3 twitter

我根据主题标签通过XML格式阅读推文,但我在推文中遇到一些奇怪的字符,这些字符给我带来了麻烦。例如:


我设法使用我在网上找到的代码修复了它:

$thetweet = preg_replace('/[\x00-\x08\x10\x0B\x0C\x0E-\x19\x7F]'.
             '|[\x00-\x7F][\x80-\xBF]+'.
             '|([\xC0\xC1]|[\xF0-\xFF])[\x80-\xBF]*'.
             '|[\xC2-\xDF]((?![\x80-\xBF])|[\x80-\xBF]{2,})'.
             '|[\xE0-\xEF](([\x80-\xBF](?![\x80-\xBF]))|(?![\x80-\xBF]{2})|[\x80-\xBF]{3,})/S',
             '?', $thetweet );

但是,此正则表达式在ActionScript 3中不起作用。 任何人都可以帮助在ActionScript中应用此代码吗?它不接受这个正则表达式。

1 个答案:

答案 0 :(得分:0)

根据非常奇怪的文档,你必须双重转义十六进制转义序列。

我不知道,文档很糟糕。但你可以试试

raw:

[\\x00-\\x08\\x10\\x0B\\x0C\\x0E-\\x19\\x7F]|[\\x00-\\x7F][\\x80-\\xBF]+|([\\xC0\\xC1]|[\\xF0-\\xFF])[\\x80-\\xBF]*|[\\xC2-\\xDF]((?![\\x80-\\xBF])|[\\x80-\\xBF]{2,})|[\\xE0-\\xEF](([\\x80-\\xBF](?![\\x80-\\xBF]))|(?![\\x80-\\xBF]{2})|[\\x80-\\xBF]{3,})/S

分隔:

/[\\x00-\\x08\\x10\\x0B\\x0C\\x0E-\\x19\\x7F]|[\\x00-\\x7F][\\x80-\\xBF]+|([\\xC0\\xC1]|[\\xF0-\\xFF])[\\x80-\\xBF]*|[\\xC2-\\xDF]((?![\\x80-\\xBF])|[\\x80-\\xBF]{2,})|[\\xE0-\\xEF](([\\x80-\\xBF](?![\\x80-\\xBF]))|(?![\\x80-\\xBF]{2})|[\\x80-\\xBF]{3,})\/S/