簡體   English   中英

如何用給定字符串中的“”替換給定子字符串?

[英]How to replace a given substring with “” from a given string?

我通過幾個示例將給定字符串中的給定子字符串替換為""但無法實現結果。 該字符串太長而無法發布,它包含一個子字符串,如下所示:

/image/journal/article?img_id=24810&t=1475128689597

我想用“”替換此子字符串。這里img_idt的值可以變化,所以我必須使用正則表達式。 我嘗試使用以下代碼:-

String regex="^/image/journal/article?img_id=([0-9])*&t=([0-9])*$";
content=content.replace(regex,"");

這里的內容是原始給定的字符串。 但是,這段代碼實際上並沒有取代內容中的任何content 因此,請幫助。任何幫助將不勝感激。

正則表達式可以很好地使用replaceAll

content=content.replaceAll("[0-9]*","");

String content="/image/journal/article?img_id=24810&t=1475128689597";
content=content.replaceAll("[0-9]*","");
System.out.println(content);

輸出:

/image/journal/article?img_id=&t=

更新:簡單,可能會少一些舒適,但比較簡單

    String content="sas/image/journal/article?img_id=24810&t=1475128689597";
    content=content.replaceAll("\\/image.*","");
    System.out.println(content);

輸出:

sas

如果在t=1475128689597/?tag=343sdds之后還有其他內容,並且您想保留?tag=343sdds在下面使用

    String content="sas/image/journal/article?img_id=24810&t=1475128689597/?tag=343sdds";
    content=content.replaceAll("(\\/image.*[0-9]+[\\/])","");
    System.out.println(content);
    }

輸出:

sas?tag=343sdds

如果您嘗試用兩個引號替換URL的子字符串,如下所示:

/image/journal/article?img_id=""&t=""

然后,您需要在內容分配中添加轉義引號\\"\\" ,編輯正則表達式以僅查找數字,然后將其更改為replaceAll:

content=content.replaceAll(regex,"\"\"");

您可以根據給定的模式(regex)使用Java regex Utility將字符串替換為""或(任何所需的String文字),如下所示:

String content = "ALPHA_/image/journal/article?img_id=24810&t=1475128689597_BRAVO";
String regex = "\\/image\\/journal\\/article\\?img_id=\\d+&t=\\d+";
Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(content);
if (matcher.find()) {
    String replacement = matcher.replaceAll("PK");
    System.out.println(replacement); // Will print ALPHA_PK_BRAVO
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM