如何仅使用正则表达式解析HTML文件中的文本中的外来字符

时间:2010-08-18 16:38:46

标签: python regex

我正在尝试解析HTML并自动更改任何外来字符的字体,我遇到了一些问题。有一些不同的hackish方式我试图实现这一点,但没有一个工作得很好,我想知道是否有任何想法。有没有任何简单的方法与python匹配所有外国字符(特别是日语汉字/ Hirigana /片假名)与正则表达式?我一直在使用的是一组非外国字符的补充([^ A-Za-z0-9<>'“=]),但是效果不好,我很担心它将匹配< ...>中包含的内容,我不想这样做。

2 个答案:

答案 0 :(得分:2)

我不会只使用正则表达式。沿着这条路走an angry Tony the Pony

但是,我会使用HTML解析器与正则表达式结合使用。这样,您就可以将标记与非标记区分开来。

答案 1 :(得分:1)

使用BeautifulSoup获取您需要的内容,然后使用此代码的变体来匹配您的字符。

import re

kataLetters = range(0x30A0, 0x30FF)
hiraLetters = range(0x3040, 0x309F)
kataPunctuation = range(0x31F0,0x31FF)

myLetters = kataLetters+kataPunctuation+hiraLetters

myLetters = u''.join([unichr(aLetter) for aLetter in myLetters])


myRe = re.compile('['+myLetters+']+', re.UNICODE)

使用代码表here获取角色的范围。