Re: [问题] 正规表达式 有好方法表达 非数字的字母吗

楼主: realtemper (闻鸡起舞发愤图强)   2016-03-07 13:04:19
※ 引述《opengood5566 ( )》之铭言:
: 正规表达式
: \w代表着字母和数字和_
: \d代表数字
: 但如果要表达非数字的字母 可以[a-zA-Z] 但总觉得不简洁
: 请问有比较好的表达 非数字的字母吗?
: 感谢
骗些p币
ascii 字串的话是可以 [^\W\d_] (NOT non-word, digit or underscore)
但没有比较简洁
而且 NOT 算子的效率疑似较差
至于如果字串是 unicode 而且你的 python 是 3.x 的话
那还是乖乖用 [a-zA-Z] 吧
因为 python 3 默认支援 unicode
包括 re 模组也是
所以 \w 也会 match 到 unicode 字符
测试范例如下(python 3.4 @ win7 x64 eclipse PyDev)
============================================
import re
str_test = "a1_B2_测试"
a = re.compile(r"[a-zA-Z]")
print(a.sub("X", str_test)) # X1_X2_测试
b = re.compile(r"[^\W\d_]")
print(b.sub("X", str_test)) # X1_X2_XX
============================================
作者: duckfly (Java ass)   2016-03-07 15:44:00
r"(?i)[a-z]"

Links booklink

Contact Us: admin [ a t ] ucptt.com