0

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

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

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

任何帮助都感激不尽。谢谢。

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

4

2 回答 2

1

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

[\x80-\xFE]

那将匹配除您最基本的角色之外的任何内容。作为参考,这里是 ASCII 字符表及其十六进制代码的列表

本页讨论了在正则表达式中引用特殊字符的不同方式。

于 2013-04-18T18:25:26.137 回答
1

我发现这个正则表达式有助于使用 atom 识别文件中的垃圾字符

[^(\x20-\x7F\p{Sc})]

于 2017-02-24T09:22:24.617 回答