我只是想知道为什么我们在字符类中没有字符类?例如,如下所示,我需要排除所有以0开头的数字,但不是0自己。
但方括号内的方括号无效:[[]]
string = re.findall(' ^ [(++)?[1-9] [0-9](++)?] + $',' 01 + 2& #39)
为什么?我们可以更容易地做上面这样的表达吗?
非常感谢! 埃里克
答案 0 :(得分:0)
您不能在[[0-5]]
等字符类中使用数字范围。
一些正则表达式引擎,工具和语言支持POSIX character classes我们可以指定[[:digit:][:punct:]]
。
但那不是 Python 案例。
要排除所有以0
开头但不包括0
的数字,请使用以下方法:
s = '01 2 0 33 789 005 4 08 7'
filtered = re.findall(r'\b([1-9]+|0)\b', s)
print(filtered)
输出:
['2', '0', '33', '789', '4', '7']
答案 1 :(得分:0)
这就是我所做的:
string = re.findall(' ^ [(++)?(1-9d +)(++)?] + $',' 0 1 +')
在这种情况下,它不会将0捕获为个体数字......谢谢! 埃里克