Как разобрать только иностранные символы из текста в файле HTML с регулярными выражениями - PullRequest
1 голос
/ 18 августа 2010

Я пытаюсь разобрать HTML и автоматически изменить шрифт любых иностранных символов, и у меня возникли некоторые проблемы.Есть несколько различных хакерских способов, которыми я пытаюсь достичь этого, но ни один из них не работает действительно хорошо, и мне интересно, есть ли у кого-нибудь какие-либо идеи.Есть ли какой-нибудь простой способ с помощью python сопоставить все иностранные символы (в частности, японские кандзи / хиригана / катакана) с регулярными выражениями?То, что я использовал, является дополнением набора не чужеродных символов ([^ A-Za-z0-9 <> '"=]), но это не работает хорошо, и я боюсь, что это будетсопоставлять вещи, заключенные в <...>, что я не хочу делать.

Ответы [ 2 ]

2 голосов
/ 18 августа 2010

Я бы не использовал для этого просто регулярные выражения. На этом пути лежит злой Тони Пони .

Хотя я бы использовал анализатор HTML в сочетании с регулярными выражениями. Таким образом, вы можете отличить разметку от неразметки.

1 голос
/ 18 августа 2010

Используйте 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)

Используйте кодовые таблицы здесь чтобы получить диапазоны для ваших персонажей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...