如何在Python中解析非英语混合文本

时间:2018-09-06 13:04:58

标签: python regex unicode hindi

我有以下通过解析图像生成的随机数据-https://dpaste.de/wwuj/raw

我要生成一个csv,需要从文本中提取以下数据

नाम, पति का नाम, मकान संख्या, आयु, लिंग

问题:

  1. 我们可以使用正则表达式来解析python中的非英语字符吗?

  2. 如果您可以演示如何获取字段值的小演示,那将是很好的。

谢谢。

1 个答案:

答案 0 :(得分:0)

您已经知道您使用的是哪种语言? 如果是,http://saxonica.com/html/documentation9.6/functions/math/pow.html可以帮助您获得正交字母的范围。 如果没有,Unicode Blocks 1可以帮助您了解正字法语言所处的范围,那么您可以使用其中一个来定义正则表达式范围以细化该正字法语言中的每个字符。

我不知道您是否有文件或数据已经存储在python中,因此我将避免代码中的循环与每一行匹配,但是以下正则表达式应允许您获取所需的内容:

regex = ur'[\u0020-\u007F]' # This is basic Latin orthographic language range if you want multiple ranges you can use ur'[\u0020-\u007F\u00A0-\u00FF]'
regex = regex.decode("raw-unicode-escape")
reg_compiled = re.compile(regex)
de_item = item.decode('utf-8') #Item stands for your string/line/variable or whatsoever
if reg.search(de_item):
   return item # or print(item)

我知道所有内容都很冗长,但我希望代码非常清楚,以便阅读它的人可以立即理解它。

由您决定什么是物品,但如果您有:

आयु, hello लिंग

作为项目,它将返回整个字符串