【发布时间】:2015-01-22 00:16:46
【问题描述】:
有很多表达式可以匹配数字,例如\d、1[0-9][0-9]、\d{4}、...
但是如何检查表达式是否只匹配数字?
例如,\d 匹配 0 到 9,因此表达式为 true 作为“仅匹配数字”。
另一个例子,1[0-9a-z] 匹配像 10 这样的数字,但也匹配不是数字的 1。所以 false 作为“只匹配数字”。
正如here 所提到的,很难描述“数字”是什么,所以我想将它限制为一个整数。
我的问题并不意味着我想要一个匹配整数的表达式,而是一种反向正则表达式来检查表达式本身。感谢阅读! :)
【问题讨论】:
-
您是否尝试以编程方式确定使用一个正则表达式是否另一个正则表达式可以匹配任何不只是整数的字符串?除了只有
\d或[0-9]和乘数的琐碎情况外,这非常困难。 -
我不知道你在说什么?你说的是整数和小数吗?
-
您可以根据您所知道的验证正则表达式的内容创建一个新的正则表达式,或者通过抛出一些虚拟数据和 if-else 来测试该正则表达式以捕获结果...
-
@jonrsharpe 是的,没错,如果可能的话,没有必要使用一个正则表达式来实现。