微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式接受python中的所有泰语字符和英文字母

我需要用泰语来渲染文本文档(例如Bag of Words,doc2vec).

首先,我想查看每个文档,省略除泰语字符和英语单词之外的所有内容(例如,没有标点符号,没有数字,除了撇号之外没有其他特殊字符).

对于英文文档,我使用这个正则表达式:
[^ a-zA-Z’] | ^’|’$|”

对于泰语文档,我找不到合适的正则表达式.我知道泰语的Unicode块是u0E00-u0E7F.
我尝试了[^ก – ๛a-zA-Z’] | ^’|”|”’和许多其他组合,但它们没有成功.

例如:
我想要

“ทรูวิชั่นส์ประกาศถ่ายทอดสดศึกฟุตบอลพรีเมียร์ลีกอังกฤษครบทุกนัดเป็นเวลา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’

如果您有任何更简洁的方法来执行任何步骤/任何问题,请不要犹豫!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐