1

ひらがなとカタカナの両方の Unicode 文字を含むサンプル文字列:

myString = u"Eliminate ひらがな non-alphabetic カタカナ characters"

http://www.rikai.com/library/kanjitables/kanji_codes.unicode.shtmlによると、両方の範囲に一致するパターン

myPattern = u"[\u3041-\u309f]*|[\u30a0-\u30ff]*"

シンプルな Python 正規表現置換関数

import re
print re.sub(myPattern, "", myString)

戻り値:

Eliminate  non-alphabetic カタカナ characters

それを機能させる唯一の方法は、2 つの範囲を別々に使用することです。この RegEx が単純に | パイプの両側を選択するのを妨げているのは何ですか?

4

2 に答える 2

5

範囲を 1 つの文字クラスに結合する必要があります。そうしないと、両方ではなく、どちらか一方の範囲に一致します。

myPattern = u"[\u3041-\u309f\u30a0-\u30ff]*"

デモ:

>>> myPattern = u"[\u3041-\u309f\u30a0-\u30ff]*"
>>> print re.sub(myPattern, "", u"Eliminate ひらがな non-alphabetic カタカナ characters")
Eliminate  non-alphabetic  characters
于 2012-09-06T16:13:02.137 に答える
0
>>> myPattern = u"[\u3041-\u309f]|[\u30a0-\u30ff]"
>>> print re.sub(myPattern, "", myString)
Eliminate  non-alphabetic  characters
>>> 

EDIT 2 つの文字クラスを OR 演算子で結合することもできます

于 2012-09-06T16:15:49.340 に答える