首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >定义正则表达式时出现问题

定义正则表达式时出现问题
EN

Stack Overflow用户
提问于 2010-05-28 15:32:25
回答 3查看 100关注 0票数 0

如何定义数学expression.please正则表达式定义一个通用正则表达式

代码语言:javascript
运行
复制
5+4
5-3
5*6
6/2
EN

回答 3

Stack Overflow用户

发布于 2010-05-28 16:18:47

好的,这里有一个可能比您需要的要复杂一点的(嘿,它是一个正则表达式!)

代码语言:javascript
运行
复制
/^\s*-?\d+(?:\.\d+)?(?:\s*[+*\/\-]\s*-?\d+(?:\.\d+)?)+(?:\s*=\s*-?\d+(?:\.\d+)?)?$/

它允许一个或多个运算,十进制数,以及可选的“等于”部分的结尾。

代码语言:javascript
运行
复制
5 + 7
3 * 2 - 8
80.31 + 12 / 6
5 * 7 - 2 = 33
票数 4
EN

Stack Overflow用户

发布于 2010-05-28 15:37:16

代码语言:javascript
运行
复制
^\d+[+*\-/]\d+$
票数 0
EN

Stack Overflow用户

发布于 2010-05-28 17:43:42

规范很模糊,但这里有一个使用Java中的元正则表达式方法的可读正则表达式。

代码语言:javascript
运行
复制
    String regex =
        "num(?:opnum)*"
            .replace("op", "\\s*[*/+-]\\s*")
            .replace("num", "\\s*[+-]?\\d+(?:\\.\\d+)?\\s*");
    String[] tests = {
        "5+4",          // true
        "5 - 3",        // true
        "5 * 6 - 4",    // true
        "3.14159 = 0",  // true
        "A = B",        // false
        "5+ -4",        // true
        "5 * +4",       // true
        "5++5",         // true
        "5+++5",        // false
        "5+5+"          // false
    };
    for (String test : tests) {
        System.out.println(test + " " + test.matches(regex));
    }

数字可以包括可选的小数部分和+/-符号。可能有多个等式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2927325

复制
相关文章

相似问题

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