Java正则表达式至少需要一个字母和一个数字。还允许任何特殊字符

时间:2017-12-12 10:31:35

标签: java regex string

我尝试搜索一个正则表达式,它可以验证字符串是否包含至少一个字母和一个数字,并且可以有任何特殊字符,并且最小长度为8。

我尝试了以下正则表达式,但检查了

  • 一位数
  • 一封信
  • @和 - 特殊符号

    (?=(?:.*[a-zA-Z]){1,})(?=(?:.*[@-]){0,})(?=(?:.*[0-9]){1,})^[a-zA-Z0-9@-]*$
    

但是我希望它可以允许任何特殊字符(特殊字符是可选的,但字符串中必须至少有一个字母和一个数字。)

2 个答案:

答案 0 :(得分:3)

不要使用正则表达式。只需按字符迭代字符串就更容易了:

<b>

“可选特殊字符”的要求似乎没有必要检查,因为你没有指定字符串只能包含某些字符,而且不必在那里。

答案 1 :(得分:1)

与@Andy Turner相同的逻辑,但使用流:

def data = ["true","false"]

for(int i=0;i<data.size();i++)
{
    if(data[i] == "true")
    {

         testRunner.runTestStepByName("customer - activate")
        }
    else if(data[i] == "false")
    {

         testRunner.runTestStepByName("customer - deactivate")

        }
    }