从.NET到Java的正则表达式

从.NET到Java的正则表达式,java,Java,我在.NET中有一个函数,它验证字符串中的所有字符都是ABC。如果字符串包含ABC以外的内容,则返回false 返回真实示例:“abaccabab” 返回错误示例:“AAGSRJJ#%#AQYJ” 我需要把它传递给Java,但我不知道怎么做。 有人能帮我吗 for (int i = 0; i < ADN.dna.Length; i++) //recorrer las filas { if (Regex.IsMatch(ADN.dna[i], @"[^ABC]"

我在.NET中有一个函数,它验证字符串中的所有字符都是ABC。如果字符串包含ABC以外的内容,则返回false

返回真实示例:“abaccabab”

返回错误示例:“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;
    }
}
for(int i=0;i
您可以使用
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;
    }
}
结果:

true
false

[ABC]{1,20}
其中20是最大长度-但您可能必须将返回值反转为true@Arvind编辑后的答案是一个错误lol。如果删除if块,它将在第一项立即退出。我已经纠正了两件事:(1)从
Length
Length
(2)多行到单行。我同意你所说的。然而,当我再次审视这个问题时,我认为你应该做两件事中的一件:将
[ABC]+
更改为
[^ABC]+
,或者将条件更改为
如果(!pattern.matcher(ADN.dna[I]).matches(){return false;}
正则表达式[^ABC]+不能像你期望的那样工作。你认为
^
会给正则表达式增加什么?在我重读这个问题之后,我否定了if条件。
true
false