如何用正则表达式删除垃圾字符?

时间:2013-04-18 07:27:22

标签: regex

我有一个Web应用程序,它读取网页的内容并使用NLP算法解析句子。我一直在使用正则表达式将内容分成单个句子然后解析它们。

我想从句子中删除Â等字符。我想这些字符是因为HTML编码。

我显然不能使用像[^\w\d]+这样的正则表达式或其变体,因为我需要完整的标点符号。当然,我可以为每个标点符号添加单独的例外,例如[^\w\d\.,:]+等等,但是如果有更简单的方法可以做到这一点,我想要它,就像一个知道它的字符类是......有趣的人物?

任何帮助将不胜感激。感谢。

编辑:该应用程序是使用PHP构建的,我使用简单的file_get_contents()从网站获取HTML数据并阅读<p>标记内的内容。

2 个答案:

答案 0 :(得分:1)

@TheGreatCO的评论中提到了这一点,但您可以创建一个“特殊”字符的字符类。您可以使用十六进制代码值在字符类中创建范围。因此,对于ASCII上的任何特殊字符,127就是这样。

[\x80-\xFE]

除了你最基本的角色之外,它会匹配任何东西。供参考,here's a list of the ASCII character table with their hex codes

This page discusses the different ways you can reference special characters in regex.

答案 1 :(得分:0)

我发现这个regexpr有助于使用atom

识别文件中的垃圾字符

[^(\ x20- \ 0x7F部分\ p {钪})]