suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Regulärer Ausdruck – Java: String-Ersetzung durch Ordnungszahl

Originaltext:

片仔癀(<span label="粉色背景" >603567</span>.SH)、
天士力(<span label="绿色背景" >600535</span>.SH)、
片仔癀(<span label="粉色背景" >603567</span>.SH)
和昆药集团(<span label="金色背景" >600422</span>.SH)等。

ersetzen durch:

片仔癀(<span label="粉色背景" ><a link="http://#link?index=1">603567</a></span>.SH)、
天士力(<span label="绿色背景" ><a link="http://#link?index=2">600535</a></span>.SH)、
片仔癀(<span label="粉色背景" ><a link="http://#link?index=3">603567</a></span>.SH)
和昆药集团(<span label="金色背景" ><a link="http://#link?index=4">600422</a></span>.SH)等。

Jetzt können Sie reguläre Ausdrücke verwenden, um den Zieltext zu ersetzen, aber die Seriennummer kann nicht vervollständigt werden (kann nicht in einer Schleife ausgeführt werden)

Pattern pattern = Pattern.compile("(<span.*?label=\"(*色背景)\".*?>)(.*?)(</span>)");
Matcher matcher = pattern.matcher(str);
int i=0;
while (matcher.find()) {
    System.out.println(matcher.replaceAll(matcher.group(1) + "<a link=\"http://#link?index="+i+"\">" + matcher.group(3) + "</a>" + matcher.group(4)));
    i++;
}

仅有的幸福仅有的幸福2702 Tage vor1000

Antworte allen(3)Ich werde antworten

  • 怪我咯

    怪我咯2017-06-30 09:58:29

    你的代码里面问题太多了

            
    String str="片仔癀(<span label=\"粉色背景\" >603567</span>.SH)、"+
            "天士力(<span label=\"绿色背景\" >600535</span>.SH)、"+
            "片仔癀(<span label=\"粉色背景\" >603567</span>.SH)"+
            "和昆药集团(<span label=\"金色背景\" >600422</span>.SH)等。";
    
    String patternStr="(<span\\s+label=\\\".色背景\\\"\\s*>)(\\d+)";
    Pattern pattern = Pattern.compile(patternStr);
    Matcher matcher = pattern.matcher(str);
    String strResult=str;
    int i=0;
    while (matcher.find()) {
        i++;
        String replaceTo=matcher.group(1)+
                "<a link=\"http://#link?index="+i
                +"\">"+matcher.group(2)+"</a>";
        strResult=strResult.replaceFirst(patternStr, replaceTo);
    }
    
    System.out.println(strResult);
    
            
            /*    输出:
    片仔癀(<span label="粉色背景" ><a link="http://#link?index=1">603567</a></span>.SH)、天士力(<span label="绿色背景" ><a link="http://#link?index=2">600535</a></span>.SH)、片仔癀(<span label="粉色背景" ><a link="http://#link?
    index=3">603567</a></span>.SH)和昆药集团(<span label="金色背景" ><a link="http://#link?index=4">600422</a></span>.SH)等。
             * */
            
            

    还有 a 标签是不是没有结束啊

    Antwort
    0
  • 给我你的怀抱

    给我你的怀抱2017-06-30 09:58:29

    参考这个:
    https://stackoverflow.com/que...

    试着把replaceAll换成replaceFirst,每次只替换第一个,然后累加i

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-06-30 09:58:29

    a标签里面"改成',试试

    Antwort
    0
  • StornierenAntwort