Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 匹配器。appendReplacement未添加起始内容 公共类TestUtil{ 公共静态void main(字符串[]args){ StringBuffer测试=新的StringBuffer(); 测试。附加(“ABABCDIDFSLHFADSKLJFHDSKH ADSFKJFHAS lkajdsfhak dsjfhs akhasdf adsjkfh asldjkfhds GLAKDFH dghkads ghklgh asdflkghadfkl1.直立人、颏部、颏部前突、牙列近位;下切牙勃起。”; 测试。附加(“BBBBBBBBBBBBBB1.Geschl.sHomo.Serctus,sbimanus.Mentoprominulo.Dentibus aequaliter Proximatis;下切牙勃起。”; Pattern=Pattern.compile(“\\d+\\.\\s*?”, 模式(不区分大小写); Matcher regexMatcher=pattern.Matcher(test.toString()); 系统输出打印LN(测试); test.delete(0,test.length()); while(regexMatcher.find()){ //test.delete(regexMatcher.start(),test.length()); 字符串匹配=regexMatcher.group(0); pattermpatter=Pattern.compile(“()(.*?)”); 匹配器termMatcher=termPatter.Matcher(匹配); 如果(termMatcher!=null){ //termMatcher.start(); System.out.println(termMatcher.groupCount()); while(termMatcher.find()){ System.out.println(“0----”+术语匹配器组(0)); System.out.println(termMatcher.group(1)); System.out.println(termMatcher.group(2)); 系统输出打印LN(术语匹配器组(3)); 系统输出打印LN(术语匹配器组(4)); termMatcher.appendReplacement(测试,appendSortKey(termMatcher.group(0)、termMatcher.group(1)、termMatcher.group(2)、termMatcher.group(3)、termMatcher.group(4)); } termMatcher.appendTail(测试); } //regexMatcher.appendTail(测试); } 系统输出打印LN(测试); } 私有静态字符串appendortKey(字符串totStr、字符串termStart、字符串termStartEndTag、字符串termValue、字符串termEndTag){ //TODO自动生成的方法存根 如果(totStr!=null){ termStart=termStart++“sortKey=\”“+termValue++“\”“+termStartEndTag; 返回termStart+termValue+termEndTag; } 返回null; } }_Java_Regex - Fatal编程技术网

Java 匹配器。appendReplacement未添加起始内容 公共类TestUtil{ 公共静态void main(字符串[]args){ StringBuffer测试=新的StringBuffer(); 测试。附加(“ABABCDIDFSLHFADSKLJFHDSKH ADSFKJFHAS lkajdsfhak dsjfhs akhasdf adsjkfh asldjkfhds GLAKDFH dghkads ghklgh asdflkghadfkl1.直立人、颏部、颏部前突、牙列近位;下切牙勃起。”; 测试。附加(“BBBBBBBBBBBBBB1.Geschl.sHomo.Serctus,sbimanus.Mentoprominulo.Dentibus aequaliter Proximatis;下切牙勃起。”; Pattern=Pattern.compile(“\\d+\\.\\s*?”, 模式(不区分大小写); Matcher regexMatcher=pattern.Matcher(test.toString()); 系统输出打印LN(测试); test.delete(0,test.length()); while(regexMatcher.find()){ //test.delete(regexMatcher.start(),test.length()); 字符串匹配=regexMatcher.group(0); pattermpatter=Pattern.compile(“()(.*?)”); 匹配器termMatcher=termPatter.Matcher(匹配); 如果(termMatcher!=null){ //termMatcher.start(); System.out.println(termMatcher.groupCount()); while(termMatcher.find()){ System.out.println(“0----”+术语匹配器组(0)); System.out.println(termMatcher.group(1)); System.out.println(termMatcher.group(2)); 系统输出打印LN(术语匹配器组(3)); 系统输出打印LN(术语匹配器组(4)); termMatcher.appendReplacement(测试,appendSortKey(termMatcher.group(0)、termMatcher.group(1)、termMatcher.group(2)、termMatcher.group(3)、termMatcher.group(4)); } termMatcher.appendTail(测试); } //regexMatcher.appendTail(测试); } 系统输出打印LN(测试); } 私有静态字符串appendortKey(字符串totStr、字符串termStart、字符串termStartEndTag、字符串termValue、字符串termEndTag){ //TODO自动生成的方法存根 如果(totStr!=null){ termStart=termStart++“sortKey=\”“+termValue++“\”“+termStartEndTag; 返回termStart+termValue+termEndTag; } 返回null; } }

Java 匹配器。appendReplacement未添加起始内容 公共类TestUtil{ 公共静态void main(字符串[]args){ StringBuffer测试=新的StringBuffer(); 测试。附加(“ABABCDIDFSLHFADSKLJFHDSKH ADSFKJFHAS lkajdsfhak dsjfhs akhasdf adsjkfh asldjkfhds GLAKDFH dghkads ghklgh asdflkghadfkl1.直立人、颏部、颏部前突、牙列近位;下切牙勃起。”; 测试。附加(“BBBBBBBBBBBBBB1.Geschl.sHomo.Serctus,sbimanus.Mentoprominulo.Dentibus aequaliter Proximatis;下切牙勃起。”; Pattern=Pattern.compile(“\\d+\\.\\s*?”, 模式(不区分大小写); Matcher regexMatcher=pattern.Matcher(test.toString()); 系统输出打印LN(测试); test.delete(0,test.length()); while(regexMatcher.find()){ //test.delete(regexMatcher.start(),test.length()); 字符串匹配=regexMatcher.group(0); pattermpatter=Pattern.compile(“()(.*?)”); 匹配器termMatcher=termPatter.Matcher(匹配); 如果(termMatcher!=null){ //termMatcher.start(); System.out.println(termMatcher.groupCount()); while(termMatcher.find()){ System.out.println(“0----”+术语匹配器组(0)); System.out.println(termMatcher.group(1)); System.out.println(termMatcher.group(2)); 系统输出打印LN(术语匹配器组(3)); 系统输出打印LN(术语匹配器组(4)); termMatcher.appendReplacement(测试,appendSortKey(termMatcher.group(0)、termMatcher.group(1)、termMatcher.group(2)、termMatcher.group(3)、termMatcher.group(4)); } termMatcher.appendTail(测试); } //regexMatcher.appendTail(测试); } 系统输出打印LN(测试); } 私有静态字符串appendortKey(字符串totStr、字符串termStart、字符串termStartEndTag、字符串termValue、字符串termEndTag){ //TODO自动生成的方法存根 如果(totStr!=null){ termStart=termStart++“sortKey=\”“+termValue++“\”“+termStartEndTag; 返回termStart+termValue+termEndTag; } 返回null; } },java,regex,Java,Regex,试图通过从另一个正则表达式的匹配器获取内容(作为条件)来仅操纵…,但在开始和结束时丢失了内容,请告诉我我所犯的错误 预期产量为 public class TestUtil { public static void main(String[] args) { StringBuffer test = new StringBuffer(); test.append("abacbsidfslhfadskljfhdskh adsfkjlhdslkfhas lk

试图通过从另一个正则表达式的匹配器获取内容(作为条件)来仅操纵,但在开始和结束时丢失了内容,请告诉我我所犯的错误

预期产量为

public class TestUtil {


    public static void main(String[] args) {
        StringBuffer test = new StringBuffer(); 
        test.append("abacbsidfslhfadskljfhdskh adsfkjlhdslkfhas lkajdsfhak dsjfhs akhasdf adsjkfh asldjkfhds glakdshgf dghkads ghklgh asdflkghadfkl <p rendition=\"#indent-1\">1. Geschl. <hi rendition=\"#r\"> <hi rendition=\"#smcap\"> <hi rendition=\"#wide\"><term xml:lang=\"la\">Homo</term></hi> </hi>. <term xml:lang=\"la\">Erectus</term>, <term xml:lang=\"la\">bimanus</term>. Mentoprominulo. Dentibus aequaliter approximatis; incisoribus inferioribus erectis.</hi> </p>");
        test.append("bbbbbbbbbbbbbbbbbbbbbb <p rendition=\"#indent-1\">1. Geschl. <hi rendition=\"#r\"> <hi rendition=\"#smcap\"> <hi rendition=\"#wide\"><term xml:lang=\"la\">sHomo</term></hi> </hi>. <term xml:lang=\"la\">sErectus</term>, <term xml:lang=\"la\">sbimanus</term>. Mentoprominulo. Dentibus aequaliter approximatis; incisoribus inferioribus erectis.</hi> </p>");
        Pattern pattern = Pattern.compile("<p rendition=\"#indent-1\">\\d+\\.\\s*.*?</p>",
                    Pattern.CASE_INSENSITIVE);
        Matcher regexMatcher = pattern.matcher(test.toString());
        System.out.println(test);
        test.delete(0, test.length());
        while (regexMatcher.find()) {

            //  test.delete(regexMatcher.start(),test.length());
                String matched =regexMatcher.group(0);
                Pattern termPatter=Pattern.compile("(<term xml:lang=\".*?\")(>)(.*?)(</term>)");

                Matcher termMatcher = termPatter.matcher(matched);

                if(termMatcher != null){
                    //termMatcher.start();
                    System.out.println(termMatcher.groupCount());
                    while (termMatcher.find()) {
                        System.out.println("0---"+termMatcher.group(0));
                        System.out.println(termMatcher.group(1));
                        System.out.println(termMatcher.group(2));
                        System.out.println(termMatcher.group(3));
                        System.out.println(termMatcher.group(4));

                        termMatcher.appendReplacement(test, appendSortKey(termMatcher.group(0),termMatcher.group(1),termMatcher.group(2),termMatcher.group(3),termMatcher.group(4)));

                    }
                    termMatcher.appendTail(test);
                }
                //regexMatcher.appendTail(test);
        }
        System.out.println(test);
    }

    private static String appendSortKey(String totStr, String termStart, String termStartEndTag, String termValue, String termEndTag) {
        // TODO Auto-generated method stub
        if(totStr!=null){
            termStart = termStart+" "+"sortKey=\""+termValue+"\""+termStartEndTag;
            return termStart+termValue+termEndTag;
        }

        return null;
    }
}
ababcbsidfslhfadskljfhdskh adsfkhas lkajdsfhak dsjfhs akhasdf adsjkfh asldjkfhds glakdshgf dghkads ghklh asdflkhadfkl

1。格施。人类。直立人。曼托普罗米诺。近似牙本质;下切牙勃起

bbbbbbbbbbbb1。Geschl.>肖莫。塞雷特斯,斯比曼努斯。曼托普罗米诺。近似牙本质;下切牙勃起


更改以下代码行,它将给出正确的结果

abacbsidfslhfadskljfhdskh adsfkjlhdslkfhas lkajdsfhak dsjfhs akhasdf adsjkfh asldjkfhds glakdshgf dghkads ghklgh asdflkghadfkl <p rendition="#indent-1">1. Geschl. <hi rendition="#r"> <hi rendition="#smcap"> <hi rendition="#wide"><term xml:lang="la" sortKey="Homo">Homo</term></hi> </hi>. <term xml:lang="la" sortKey="Erectus">Erectus</term>, <term xml:lang="la"sortKey="bimanus" >bimanus</term>. Mentoprominulo. Dentibus aequaliter approximatis; incisoribus inferioribus erectis.</hi> </p>bbbbbbbbbbbbbbbbbbbbbb <p rendition="#indent-1">1. Geschl. <hi rendition="#r"> <hi rendition="#smcap"> <hi rendition="#wide">><term xml:lang="la" sortKey="sHomo">sHomo</term></hi> </hi>. <term xml:lang="la" sortKey="sErectus">sErectus</term>, <term xml:lang="la"sortKey="sbimanus" >sbimanus</term>. Mentoprominulo. Dentibus aequaliter approximatis; incisoribus inferioribus erectis.</hi> </p>
Pattern=Pattern.compile(“.*\\d+\\.\\s*?

”, 模式(不区分大小写); /* 而不是下面的 Pattern=Pattern.compile(“\\d+\\.\\s*?

”, 模式(不区分大小写); */
说明:

  • \\d+\\.\\s*?

    零件匹配

    part,因此appendReplacement只追加

    更换零件
  • *\\d+\\.\\s*?

    部分将匹配
    文本

    ,因此在更换附件后,您将获得
    文本

    带替换件

因此,输出将是整个字符串,
text
替换为
text

不满足您的要求。我得到的输出是

。您想要什么作为输出?感谢您的快速回复,我正在查找整个测试字符串,其中只添加了sortkey附加术语标记。您可以将您期望的字符串作为问题的一部分吗?就像在问题的末尾一样,输入:预期输出:您想要的实际字符串”。这将帮助我们理解要求。我已经发布了一个答案,请检查这是否适用于您。
Pattern pattern = Pattern.compile(".*<p rendition=\"#indent-1\">\\d+\\.\\s*.*?</p>",
                Pattern.CASE_INSENSITIVE);
/*
instead of the following
Pattern pattern = Pattern.compile("<p rendition=\"#indent-1\">\\d+\\.\\s*.*?</p>",
                Pattern.CASE_INSENSITIVE);
*/