有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

处理几种可能性的Java正则表达式

我试图为以下用户生成的可能性找到一个正则表达式:

  • ÷2%3%x#4%2$@

或者

  • ÷2%x#4%2$@

或者

  • ÷2%x#4$@

或者

  • ÷2%x@

要理解表达式,它是一个分子介于 第一个÷和第一个%,分母从第一个%@。 但是,分母有一个指数,从#$

用户可以输入他/她想要的任何数字但结构保持不变。请注意,数字也可以是十进制

结构如下:÷(一个数字,如果它的两个或两个以上数字a%将位于两个数字之间)x(一个由一个数字组成的组,还有符号#,$和a%(s),也可以在两个数字之间交替)@

记住,数字可以是十进制数

我试图使用以下正则表达式,但没有成功:

"[÷]-?\\d+(\\.\\d*)?[%](-?\\d+(\\.\\d*)?){0,1}[x]([#]-?\\d+(\\.\\d*)?[$]){0,1}[@]"

我认为这个团体正在把事情复杂化。 此外,我还没有解释这个群体中可能发生的%

有什么建议吗,谢谢


共 (1) 个答案

  1. # 1 楼答案

    我找到了一个有效的正则表达式,我自下而上进行了测试: 这是:

    [÷][0-9[%][\\.]]+?[x][0-9[%][\\.][#][$]]*?[@]
    

    这个正则表达式适用于所有类型的情况。甚至那些包含十进制数或不包含指数的数字

    该组[0-9[%][\.][#][$]]*?允许正则表达式搜索指数,可以出现零次(这就是为什么*存在)或更多次,以及?让它成为可选的。类似地,对于x的系数(如果你不知道系数在哪里,请阅读帖子)和分子,我遵循了相同的想法。感谢大家为这个问题进行头脑风暴。我选择用我的答案来编程