XML的正则表达式问题

时间:2015-10-08 12:31:12

标签: php regex xml

我想在XML节点中写一个字符串,但是在这之前我必须删除任何禁用的字符。我找到了以下作品:

preg_replace("/[^\\x0009\\x000A\\x000D\\x0020-\\xD7FF\\xE000-\\xFFFD]/", "", $var)

然而,它删除了我想要保留的很多字符。例如space;&<> \/

我做了一些搜索,发现空间为x0020所以我首先尝试通过将上面的代码更改为空格来允许空格:

preg_replace("/[^\\x0009\\x000A\\x000D\\x0021-\\xD7FF\\xE000-\\xFFFD]/", "", $var)

但它仍会删除空格。我只是想删除那些奇怪的隐藏“命令”字符。我怎么能这样做?

编辑:我之前使用$var制作了htmlspecialchars(),因此我希望保留&;

1 个答案:

答案 0 :(得分:0)

您是否需要在正则表达式的末尾添加“u”,因此PHP知道您希望Unicode匹配?另请参阅UTF-8 in PHP regular expressions

我也想知道你是否想用空格替换那些字符,而不是什么。取决于你正在做什么,但是既然你正在删除换行符,那么就可以在各行之间加入单词。