Java 仅允许+;,-和。在爪哇

Java 仅允许+;,-和。在爪哇,java,regex,string,validation,Java,Regex,String,Validation,我有这根绳子 String criteria="ESS.(BVA4+BVA5)+(-(DIESE.(BVM5+BVM6)))"; 我想对它进行验证 它应该只包含+-或。或者全部三个 它不应接受其他符号,如!,%等等 如何为它编写正则表达式???试试这个String regEx=“[+\124; \-\ 124;.|]”这方面有很多猜测: boolean foundMatch = subjectString.matches("[A-Z0-9().+-]*"); 如果字符串仅包含大写ASCII字

我有这根绳子

String criteria="ESS.(BVA4+BVA5)+(-(DIESE.(BVM5+BVM6)))";
我想对它进行验证

  • 它应该只包含+-或。或者全部三个
  • 它不应接受其他符号,如!,%等等

  • 如何为它编写正则表达式???

    试试这个
    String regEx=“[+\124; \-\ 124;.|]”

    这方面有很多猜测:

    boolean foundMatch = subjectString.matches("[A-Z0-9().+-]*");
    
    如果字符串仅包含大写ASCII字母、ASCII数字、括号、加号/减号或点,则返回
    true
    。它包含空字符串(如果您不想这样做,请将
    *
    更改为
    +


    当然,检查(例如)括号是否正确平衡(这在Java正则表达式中是无法做到的)。

    @Kazekage Gaara。。我成功地检查了+-和。但我不知道如何限制其他特殊字符..以及如何结合这两个条件(如果它包含“ESS”?“BVA4”?“BVA5”?“DIESE”?“BVM5”?“BVM6”?您的要求还没有充分说明。请向我们展示一些有效和无效匹配的示例。@EJP和@Damian Powell-LIKE-“ESS.(BVA4+BVA5)-(BVM5+BVM6).ER5”)((BVA4+BVA5)。((DIESE.(BVM5.BVM6))是正确的。。但是“(BVA4%BVA5)*((DIESE.(BVM5+BVM6)))”(ESS.(BVA4+BVA5)@sumit你能把这些例子放在你的问题中吗?因为这非常重要,并且有助于我们理解你的问题。另外,把你到目前为止提出的regexp放在这里,描述一下,它做了什么,还没有做什么。这里有一些问题:1.你需要在Java字符串中加倍反斜杠。2.你不需要管道在字符类内部-现在,literal
    |
    也将与此正则表达式匹配。3.此正则表达式无法解决OP(指定错误)的问题。Tim Pietzcker感谢..这是hepled...)