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