以下の正規表現をユニコード対応のバージョンに置き換えて、http://➡.wsやその他の非ascii IRIsのようなものをキャッチしたいと思います。目的は、ユーザーのテキストからこれらを取り出し、それらを実際のリンクにエンコードし、HTML化することです。python unicode regex
Pythonは\ wの意味を変更するre.UNICODEフラグを提供していますが、これは「英数字とアンダースコア」として定義されているため、文字クラスにはアンダースコアが含まれます。
domain_regex = re.compile(r"""
(
(https?://)
(
[0-9a-zA-Z]
[0-9a-zA-Z_-]*
\.
)+
[a-zA-Z]{2,4}
)
| # begins with an http scheme followed by a domain, or
(
(?<! # negative look-behind
[[email protected]]
)
(
[0-9a-zA-Z]
[0-9a-zA-Z_-]*
\.
)+
# top-level domain names
com|ca|net|org|edu|gov|biz|info|mobi|name|
us|uk|fr|au|be|ch|de|es|eu|it|tv|cn|jp
)
""", re.VERBOSE)
以上の非ASCIIドメイン: - (。。スイス、ドイツの "ブック" 現在ダウン)
これは、http://stackoverflow.com/questions/1832893/python-regex-matching-unicode-propertiesの可能な複製です。その他のヘルプが必要な場合はお知らせください – buckley