角色类正则表达式Python

时间:2017-05-27 14:46:29

标签: python-3.x

我只是想知道为什么我们在字符类中没有字符类?例如,如下所示,我需要排除所有以0开头的数字,但不是0自己。

但方括号内的方括号无效:[[]]

string = re.findall(' ^ [(++)?[1-9] [0-9](++)?] + $',' 01 + 2& #39)

为什么?我们可以更容易地做上面这样的表达吗?

非常感谢! 埃里克

2 个答案:

答案 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捕获为个体数字......

谢谢! 埃里克

相关问题