Python 如何检查正则表达式是否只匹配数字?

Python 如何检查正则表达式是否只匹配数字?,python,regex,Python,Regex,有许多表达式可以与数字匹配,例如\d,1[0-9][0-9],\d{4},。。。 但如何检查表达式是否只匹配数字 例如,\d匹配0到9,因此表达式为true为“仅匹配数字” 另一个例子是,1[0-9a-z]匹配像10这样的数字,但也匹配不是数字的1。因此false为“仅匹配数字” 正如前面提到的,很难描述“数字”是什么,所以我想把它限制为一个整数 我的问题并不是说我想要一个匹配整数的表达式,而是一种反向正则表达式来检查表达式本身。感谢阅读!:) 如果我正确理解了这个问题,您需要检查-给定一些正则

有许多表达式可以与数字匹配,例如
\d
1[0-9][0-9]
\d{4}
,。。。 但如何检查表达式是否只匹配数字

例如,
\d
匹配0到9,因此表达式为true为“仅匹配数字”

另一个例子是,
1[0-9a-z]
匹配像10这样的数字,但也匹配不是数字的1。因此false为“仅匹配数字”

正如前面提到的,很难描述“数字”是什么,所以我想把它限制为一个整数


我的问题并不是说我想要一个匹配整数的表达式,而是一种反向正则表达式来检查表达式本身。感谢阅读!:)

如果我正确理解了这个问题,您需要检查-给定一些正则表达式r-r是否匹配任何不是数字的东西。从这个意义上讲,空正则表达式
$^
(不匹配任何内容)将通过测试,因为它不匹配任何内容(因此不匹配非数字)<但是,代码>1[0-9][0-9a-z]与
10s
匹配,这不是一个数字,因此测试失败

这在Python的正则表达式功能中是不可能的。您需要一种正则表达式语言,它支持交集(&)、补码(~)和非空性测试(例如,通过生成匹配词)。然后,如果r是正则表达式,则需要检查

`r & ~(0|[1-9][0-9]*)`
是非空的

交集和补集在计算上很昂贵,但是有一些正则表达式库支持它们。我知道的一个例子(Java)是

这可以通过以下方式实现(假设您遵守BRICS regex语法):


请参阅和类的JavaDoc。这不是一个与问题的python标记相匹配的示例,但您要解决的问题也不是固有的语言特定问题。

如果我正确理解了问题,您需要检查-给定一些正则表达式r-r是否匹配任何非数字的项。从这个意义上讲,空正则表达式
$^
(不匹配任何内容)将通过测试,因为它不匹配任何内容(因此不匹配非数字)<但是,代码>1[0-9][0-9a-z]与
10s
匹配,这不是一个数字,因此测试失败

这在Python的正则表达式功能中是不可能的。您需要一种正则表达式语言,它支持交集(&)、补码(~)和非空性测试(例如,通过生成匹配词)。然后,如果r是正则表达式,则需要检查

`r & ~(0|[1-9][0-9]*)`
是非空的

交集和补集在计算上很昂贵,但是有一些正则表达式库支持它们。我知道的一个例子(Java)是

这可以通过以下方式实现(假设您遵守BRICS regex语法):


请参阅和类的JavaDoc。这不是一个与问题的python标记相匹配的示例,但您要解决的问题也不是固有的语言特定问题。

如果我正确理解了问题,您需要检查-给定一些正则表达式r-r是否匹配任何非数字的项。从这个意义上讲,空正则表达式
$^
(不匹配任何内容)将通过测试,因为它不匹配任何内容(因此不匹配非数字)<但是,代码>1[0-9][0-9a-z]与
10s
匹配,这不是一个数字,因此测试失败

这在Python的正则表达式功能中是不可能的。您需要一种正则表达式语言,它支持交集(&)、补码(~)和非空性测试(例如,通过生成匹配词)。然后,如果r是正则表达式,则需要检查

`r & ~(0|[1-9][0-9]*)`
是非空的

交集和补集在计算上很昂贵,但是有一些正则表达式库支持它们。我知道的一个例子(Java)是

这可以通过以下方式实现(假设您遵守BRICS regex语法):


请参阅和类的JavaDoc。这不是一个与问题的python标记相匹配的示例,但您要解决的问题也不是固有的语言特定问题。

如果我正确理解了问题,您需要检查-给定一些正则表达式r-r是否匹配任何非数字的项。从这个意义上讲,空正则表达式
$^
(不匹配任何内容)将通过测试,因为它不匹配任何内容(因此不匹配非数字)<但是,代码>1[0-9][0-9a-z]与
10s
匹配,这不是一个数字,因此测试失败

这在Python的正则表达式功能中是不可能的。您需要一种正则表达式语言,它支持交集(&)、补码(~)和非空性测试(例如,通过生成匹配词)。然后,如果r是正则表达式,则需要检查

`r & ~(0|[1-9][0-9]*)`
是非空的

交集和补集在计算上很昂贵,但是有一些正则表达式库支持它们。我知道的一个例子(Java)是

这可以通过以下方式实现(假设您遵守BRICS regex语法):


请参阅和类的JavaDoc。这不是一个与问题的python标记匹配的示例,但您要解决的问题也不是固有的语言特定问题。

您是否试图通过编程方式确定使用一个正则表达式时,另一个正则表达式是否可以匹配任何不只是整数的字符串?除了只有
\d
[0-9]
和乘法器的小情况外,这是非常困难的。我不知道你在说什么?你说的是整数和小数吗?你可以根据你所知道的验证正则表达式的内容来生成一个新的正则表达式,或者通过抛出一些伪数据来测试该正则表达式,如果要捕获结果…@jornsharpe是的,如果可能的话,不需要使用一个正则表达式来实现这一点。您是否试图通过编程方式确定使用一个正则表达式是否可以使用另一个正则表达式