首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用正则表达式验证数值范围

使用正则表达式验证数值范围
EN

Stack Overflow用户
提问于 2014-03-03 00:48:38
回答 10查看 106.3K关注 0票数 37

我的输入数字是一个整数。但是输入的数字必须在-2055到2055的范围内,我想使用正则表达式进行检查。

那么有没有什么办法写一个正则表达式来检查一个数字是否在(-2055,2055)中呢?

更容易使用if语句来检查数字是否在范围内。但是我正在编写一个解释器,所以我应该使用regex来检查输入数字

EN

Stack Overflow用户

发布于 2014-04-30 17:37:34

这么多答案,但是没有人在评论中读到(或关心) OPs方面的问题?

我正在用OCaml写一个解释器....如何在不使用正则表达式的情况下验证范围内的输入数字??- Trung Nguyen Mar 2 at 17:30

正如许多答案正确地指出,在这种情况下使用正则表达式是可怕的,让我们考虑一下OCaml中的其他方法!自从我使用OCaml以来已经有一段时间了,但是通过查找一些构造,我能够将这些拼凑在一起:

代码语言:javascript
运行
复制
let isInRange i = 
    not(i < -2055 or i > 2055);;

let isIntAndInRange s = 
    try
    let i = int_of_string s in
    not(i < -2055 or i > 2055)
    with Failure "int_of_string" -> false;;

let () = print_string "type a number: " in
let s = read_line () in
isIntAndInRange s

如果有任何不清楚的地方,请仔细阅读它的语法、type conversion functionsexception handlinginput-output functions

用户输入部分仅用于演示。在那里使用read_int函数可能更方便。但处理异常的基本概念保持不变。

票数 5
EN
查看全部 10 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22130429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档