Java 检查XML标记中的字符串长度-regex

Java 检查XML标记中的字符串长度-regex,java,regex,xml,Java,Regex,Xml,我想使用正则表达式检查XML标记之间的字符串长度。字符串的值始终为6,我想检查它是否为6。 我试着这样做: <tag>(.+?){6,6}</tag> (.+?){6,6} 但事实总是如此,即使我改变了数字。 (?=^.{6}$)这个正则表达式也不工作,我得到了一个正则表达式不包含的错误。 如何检查标记之间字符串的长度 我不以这种方式验证xml,我只想检查断言。警告:您不应该以这种方式验证xml!正确处理可能会成为一项非常复杂的任务 相反,使用XML解析器,获取“ta

我想使用正则表达式检查XML标记之间的字符串长度。字符串的值始终为6,我想检查它是否为6。 我试着这样做:

<tag>(.+?){6,6}</tag>
(.+?){6,6}
但事实总是如此,即使我改变了数字。
(?=^.{6}$)
这个正则表达式也不工作,我得到了一个正则表达式不包含的错误。 如何检查标记之间字符串的长度


我不以这种方式验证xml,我只想检查断言。

警告:您不应该以这种方式验证xml!正确处理可能会成为一项非常复杂的任务

相反,使用XML解析器,获取“tag”元素的文本值,并检查其长度

但是如果您仍然希望这样做,下面的正则表达式将按照您描述的方式执行(但可能不是您想要的!)

请注意,此正则表达式仍然过于严格,因为它不允许以下完全有效的输入:

<tag  >[A-Z]{6}</tag>
[A-Z]{6}

简单而冗长的方法是从>+1获取子字符串,然后它将抛出StringIndexOutOfBoundsException,如果是,则将是tagtext

首先以字符串形式读取该行,然后将其转换为字符数组,然后迭代该行!
如果每个<&>的计数为2,则从量化的子模式中获取子字符串。使用
{6}
[^我不验证,我想通过这种方式检查断言。你应该将其添加到你的问题中。这会极大地改变整个情况。有人要求使用regex解决方案。
<tag>[^&<]{6}</tag>
<tag>[A-Z]{6}</tag>
<tag  >[A-Z]{6}</tag>
List<String> list= new ArrayList<String>();
FileReader fr= new FileReader(path);

BufferedReader br= new BufferedReader(fr);

String str= null;

while((str=br.readLine())!=null)){ 
    list.add(str);
    }

//suppose you want to check 3rd line
int lbrack=0; rbrack=0;
String text= null;
String data= list.get(2);
char[] brack= data.toCharArray();
for(int i=0; i<brack.length;i++){
    if(brack[i]=='<')
    lbrack++;
    if(brack[i]=='>')
    rbrack++;
    }
if(lbrack==2 && rbrack==2){
      text= data.substr(data.indexOf(">")+1,data.indexOf("<"));
    }
else {
    System.out.println("this is root tag or some problem here");
}