从.NET到Java的正则表达式

时间:2020-09-02 16:20:56

标签: java

我在.NET中有一个函数,可以验证字符串中的所有字符都是ABC。如果该字符串包含ABC以外的任何其他字符,则返回false

返回真实的示例:“ ABAABCCCABAB”

返回错误的示例:“ AAGSRJJ#%#°AQYJ”

我需要将其传递给Java,但我不知道该怎么做。 有人可以帮我吗?

for (int i = 0; i < ADN.dna.Length; i++)  //recorrer las filas
{
    if (Regex.IsMatch(ADN.dna[i], @"[^ABC]", RegexOptions.IgnoreCase) == true)
    {
        return false;
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用java.util.regex.Pattern类。

Pattern pattern = Pattern.compile("[ABC]+", Pattern.CASE_INSENSITIVE);
for (int i = 0; i < ADN.dna.length; i++) {
    if (!pattern.matcher(ADN.dna[i]).matches()) {
        return false;
    }
}

正则表达式模式[ABC]+的解释:

输入必须是集合ABC中一个或多个字符(用+表示)。

这是您的测试用例:

public static void main(String[] args) {
  Pattern pattern = Pattern.compile("[ABC]+", Pattern.CASE_INSENSITIVE);
  System.out.println(pattern.matcher("ABAABCCCABAB").matches());
  System.out.println(pattern.matcher("AAGSRJJ #% # ° AQYJ").matches());
}

结果:

true
false
相关问题