亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這段文本如果我想要去掉包含####的最里面的<table>標簽對,應該怎么做?

這段文本如果我想要去掉包含####的最里面的<table>標簽對,應該怎么做?

慕尼黑5688855 2023-04-25 19:15:38
原字符串<table>.fdghfhgfdfgdfgdfg$$<table>dsgfdsf#####dsfkjdshf</table>$$dsfdsfdsfdsf</table>這段文本如果我想要去掉包含####的最里面的<table>標簽對,應該怎么做,也就是得到<table>.fdghfhgfdfgdfgdfg$$$$dsfdsfdsfdsf</table>
查看完整描述

3 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

這個怎么處理都行的,不論用什么方法底層其實都是substring,如果你的<table></table><table>和</table>是固定,可以這樣StringUitls.substringBefore("yourstr", "<table>")+StringUitls.substringAfter("yourstr","</table><table>")+StringUitls.substringAfter("yourstr","</table>")具體效果,調試下即可。

查看完整回答
反對 回復 2023-04-28
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

java里不支持遞歸匹配, 難點. 不過我們可以用negative lookahead來做:

@Testpublic void tttttt(){    String str="<table>.fdghfhgfdfgdfgdfg$$<table>dsgfdsf#####dsfkjdshf</table>$$dsfdsfdsfdsf</table>";    str=str.replaceAll("<table>(?:.(?!.*<table>))*?</table>", "");
    System.out.println(str);
}

結果: 

<table>.fdghfhgfdfgdfgdfg$$$$dsfdsfdsfdsf</table>


查看完整回答
反對 回復 2023-04-28
?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

import java.util.regex.Pattern;

import java.util.regex.Matcher;

public class Test {

    public static void main(String[] args) {

        final String str = "<table>.fdghfhgfdfgdfgdfg$$<table>dsgfdsf#####dsfkjdshf</table>$$dsfdsfdsfdsf</table>";

        final Pattern patt = Pattern.compile("<table>[^<]*(<table>[^<]*</table>)[^<]*</table>");

        final Matcher matcher = patt.matcher(str);

        if (matcher.find()) {

            System.out.println(matcher.group(1));

        }

    }

}


查看完整回答
反對 回復 2023-04-28
  • 3 回答
  • 0 關注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號