正则表达式接受python中的所有泰语字符和英文字母
我需要用泰语来渲染文本文档(例如Bag of Words,doc2vec).
首先,我想查看每个文档,省略除泰语字符和英语单词之外的所有内容(例如,没有标点符号,没有数字,除了撇号之外没有其他特殊字符). 对于英文文档,我使用这个正则表达式: 对于泰语文档,我找不到合适的正则表达式.我知道泰语的Unicode块是u0E00-u0E7F. 例如: “??????????????????????????????????????????????????????????????????????3???????????????二千零十七分之二千零十六 – 二千零十九分之二千零十八????????????5????????????????????,???????????????????????????? ??????????????????????????????????????????????????????some,这里的英语单词!abc123“ 成为: “?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????,????????????????????????????????????????????????????????? ?????????????????????????some here here here abc“ 解决方法
我将使用一些列表来做我需要的事情.
首先,让我们创建模式: pattern = re.compile(r"[^u0E00-u0E7Fa-zA-Z' ]|^'|'$|''") 我将使用名为test_string的字符串,其中包含您的示例: test_string="??????????? ???????????????????????? ????????? ??? ?????? ????????????????? 3 ?? ????????????? 2016/2017 - 2018/2019 ???????????? 5 ?????? ???? ?? ???? ????,????? ?????? ?? ?????? ?????????? ???????? ???????????????????? ?????????????? ??????????? some,English words here! abc123" 首先,让我们在列表中删除要删除的字符: char_to_remove = re.findall(pattern,test_string) 然后,让我们创建一个由原始字符串中的字符组成的列表,不带这些字符: list_with_char_removed = [char for char in test_string if not char in char_to_remove] 我们将此列表转换为字符串,我们就完成了. result_string = ''.join(list_with_char_removed) 结果是: “?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?????????????????????一些英文单词abc’ 如果您有任何更简洁的方法来执行任何步骤/任何问题,请不要犹豫! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |