python - Django 正则表达式 unicode 忽略\w 标签

标签 python regex django unicode

Regex \w 似乎忽略了我的 Unicode 字符串。 我创建了以下函数:
extras.py

# -*- coding: utf-8 -*-
def test(word):
    print re.sub(r'[^\w]+', '', word, re.U)

以及来自 django shell:

import extras
extras.test(u'שלום')

输出是一个空字符串,但在本例中它应该与输入相同。
正则表达式的目的是仅保留字母数字字符,但它不起作用。但它可以与 ASCII 一起使用。

可能是什么问题?

最佳答案

使用原始 unicode 字符串作为模式,并确保使用 flags 参数:

# -*- coding: utf-8 -*-
def test(word):
    print re.sub(ur'[^\w]+', u'', word, flags=re.U)

然后:

In [9]: test(u'Ã')
Ã

关于python - Django 正则表达式 unicode 忽略\w 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11747625/

相关文章:

python - 使用另一个 CSR 矩阵的列填充空的 CSR 稀疏矩阵并对其进行切片

python - 更改 get_context_data 中的查询集后分页不起作用

javascript - 有没有办法让 JSLint 对这个正则表达式满意?

python - 使用模型(管理)继承时命名空间 ModelAdmin.get_urls 的 Django 方式是什么?

python - Django 中何时使用语言环境名称和语言代码?

python - 如何使用 A 矩阵在 python 中返回 `A**n`?

python - 是否可以在虚拟开发环境中使用 matplotlib 打开图像?

java - Java 中无法转义右括号?

java - 这个 group() 如何捕捉文本?

python - 将 Jinja2 与 Django 一起使用,加载标签不起作用