正则表达式:我想检查我的文本文件中是否存在任何英语词典单词

时间:2019-02-28 09:36:35

标签: regex

我的文本文件中包含更多梵语单词。但是中间有一些英文句子是错误的。它的文件很大,很难滚动和检查。那么有没有办法使用正则表达式我可以在该文件中找到任何匹配的英语词典单词

duñkaraà me babhüvätra
     tvädåçaà mäna-bhaïjanam
ato 'tra muralé tyaktä
     lajjayaiva mayä priyä
aho bata mayä tatra
     kåtaà yädåk sthitaà yathä
tad astu kila düre 'tra
     nirvaktuà ca na çakyate
     The situation there cannot even be described here.
ekaù sa me tad vraja-loka-vat priyas
     tädåë mahä-prema-bhara-prabhävataù
vakñyaty adaù kiïcana bädaräyanir
     maj-jévite çiñya-vare sva-sannibhe
çré-parékñid uväca 
etädåçaà tad vraja-bhägya-vaibhavaà
     samrambhataù kértayato mahä-prabhoù
punas tathä bhäva-niveça-çaìkayä

在上面的文本The situation there cannot even be described here.中,有什么简单的方法可以搜索是否有任何英语词典单词。

我正在使用linux。因此,任何命令都可以。但更喜欢使用正则表达式。

2 个答案:

答案 0 :(得分:0)

如果每个“梵语”单词始终都有一个特殊字符(如“ù”),那么您可以检查单词(\w+)的正则表达式。

由于“ priyas”之类的单词并非如此,因此您必须检查包含所有英语单词的数据存储中的每个单词。不幸的是,您无法通过其他任何方式检查有效的英语单词。

使用trie可以更快地进行搜索。

答案 1 :(得分:0)

我对Linux的Unicode不熟悉。但我可以为您提供一些指导。

  1. 根据Wiki,梵语字符属于Devanagari Unicode块。

  2. Devanagari Unicode块位于A8E0— A8FF上。您可以找到here

    您可能需要诸如this tool之类的工具来转换为UTF8。

  3. 设置Regex条件(不包括Devanagari Unicode块)。

    \S+[^\s\xA8E0-\xA8FF.]+.*
    

正则表达式demo

这将更容易找到英语句子。