Python 3.x 字符类正则表达式Python
我只是想知道为什么我们不能在一个字符类中包含字符类?例如,如下所示,我需要排除所有以0开头的数字,但不是0本身 但是,方括号中的方括号无效:[[]] string=re.findall'^[+?[1-9][0-9]+?]+$','01+2' 为什么呢?我们能做像上面这样的表达不是更容易吗 非常感谢! Erik不能在像[[0-5]]这样的字符类中使用数字范围。一些正则表达式引擎、工具和语言支持我们可以指定[[:digit:][:punct:][]的地方。但Python不是这样 要排除所有以0开头但不是0本身的数字,请使用以下方法:Python 3.x 字符类正则表达式Python,python-3.x,Python 3.x,我只是想知道为什么我们不能在一个字符类中包含字符类?例如,如下所示,我需要排除所有以0开头的数字,但不是0本身 但是,方括号中的方括号无效:[[]] string=re.findall'^[+?[1-9][0-9]+?]+$','01+2' 为什么呢?我们能做像上面这样的表达不是更容易吗 非常感谢! Erik不能在像[[0-5]]这样的字符类中使用数字范围。一些正则表达式引擎、工具和语言支持我们可以指定[[:digit:][:punct:][]的地方。但Python不是这样 要排除所有以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']
以下是我所做的: string=re.findall'^[++?1-9d++?]+$','01+' 在这种情况下,它不会将0捕获为单个数字,因为 谢谢!
埃里克谢谢你,罗曼!那是一个漂亮的表达!只是想知道我是否只想包括“+”和不以0开头的数字,但可以用0本身,我想用class和class来处理会更容易,我没有其他方法可以想到这些。。。。例如“10++”,这不会捕获类似304的内容。更好的模式可能是r'\b[1-9]\d+|0\b'