Python排除特殊字符和非英语字母

发布于 2025-02-10 15:14:43 字数 1978 浏览 1 评论 0原文

我正在为Python制作刮擦脚本。 我不想刮擦非英语字母和特殊字符。

我正在使用此代码来摆脱我不需要的大多数符号/字符/标志:

 emoji_pattern = re.compile("["
                                                                u"\U0001F600-\U0001F64F"  # emoticons
                                                                u"\U0001F300-\U0001F5FF"  # symbols & pictographs
                                                                u"\U0001F680-\U0001F6FF"  # transport & map symbols
                                                                u"\U0001F1E0-\U0001F1FF"  # flags (iOS)
                                                                u"\U00002500-\U00002BEF"  # chinese char
                                                                u"\U00002702-\U000027B0"
                                                                u"\U00002702-\U000027B0"
                                                                u"\U000024C2-\U0001F251"
                                                                u"\U0001f926-\U0001f937"
                                                                u"\U00010000-\U0010ffff"
                                                                u"\u2640-\u2642" 
                                                                u"\u2600-\u2B55"
                                                                u"\u200d"
                                                                u"\u23cf"
                                                                u"\u23e9"
                                                                u"\u231a"
                                                                u"\ufe0f"  # dingbats
                                                                u"\u3030"
                                                           "]+", re.UNICODE)

不可忽视的是,此代码仍然忽略了这样的文本:

vɒs səˈvɑːnt
meɪhər ʃælæl ˈhæʃ bɑːz
מַהֵר שָׁלָל חָשׁ בַּז
Mahēr šālāl ḥāš baz

我如何也可以摆脱这些代码?

I am working on a scraping script for python.
I don't want to scrape non-English letters and special characters.

I am using this code to get rid of most symbols/characters/flags that I don't need:

 emoji_pattern = re.compile("["
                                                                u"\U0001F600-\U0001F64F"  # emoticons
                                                                u"\U0001F300-\U0001F5FF"  # symbols & pictographs
                                                                u"\U0001F680-\U0001F6FF"  # transport & map symbols
                                                                u"\U0001F1E0-\U0001F1FF"  # flags (iOS)
                                                                u"\U00002500-\U00002BEF"  # chinese char
                                                                u"\U00002702-\U000027B0"
                                                                u"\U00002702-\U000027B0"
                                                                u"\U000024C2-\U0001F251"
                                                                u"\U0001f926-\U0001f937"
                                                                u"\U00010000-\U0010ffff"
                                                                u"\u2640-\u2642" 
                                                                u"\u2600-\u2B55"
                                                                u"\u200d"
                                                                u"\u23cf"
                                                                u"\u23e9"
                                                                u"\u231a"
                                                                u"\ufe0f"  # dingbats
                                                                u"\u3030"
                                                           "]+", re.UNICODE)

Unforunately this code still ignores text like this:

vɒs səˈvɑːnt
meɪhər ʃælæl ˈhæʃ bɑːz
מַהֵר שָׁלָל חָשׁ בַּז
Mahēr šālāl ḥāš baz

How can I get rid of these as well?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

套路撩心 2025-02-17 15:14:43

它过滤了吗?

import re


string = '''English text? vɒs səˈvɑːnt

\U0001F600 \U0001F64F
meɪhər ʃælæl ˈhæʃ bɑːz
מַהֵר שָׁלָל חָשׁ בַּז
Mahēr šālāl ḥāš baz'''


print(re.sub('[^\sA-Za-z0-9.!?\\-]+','', string))

输出:

English text? vs svnt

 
mehr ll h bz
   
Mahr ll  baz

我不确定您是否需要标点符号。如果不是 - 使用此模式[^\ sa-Za-Z0-9]

Does it filter enough?

import re


string = '''English text? vɒs səˈvɑːnt

\U0001F600 \U0001F64F
meɪhər ʃælæl ˈhæʃ bɑːz
מַהֵר שָׁלָל חָשׁ בַּז
Mahēr šālāl ḥāš baz'''


print(re.sub('[^\sA-Za-z0-9.!?\\-]+','', string))

Output:

English text? vs svnt

 
mehr ll h bz
   
Mahr ll  baz

I was not sure if you need punctuation. If not - use this pattern [^\sA-Za-z0-9]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文