簡體   English   中英

如何從Java字符串中刪除括號?

[英]How to strip braces out of Java string?

我的Java應用程序將獲取以下形式的字符串:

How now [[brown cow ]]. The arsonist [[ had oddly shaped ]] feet. The [[human torch was denied]] a bank loan.

並且需要一個正則表達式/方法來去除[[ ]]每個實例(以及所有包含文本),從而將上述字符串轉換為:

How now. The arsonist  feet. The  a bank loan.

注意保持雙位(與arsonistfeet ,以及之間Thea )? 這也很重要。

不知道這里的正則表達式是否合適,或者是否有更有效的方法來剔除不需要的[[ ]]實例。

這是在javascript中。

var text = "How now [[brown cow ]]. The arsonist [[ had oddly shaped ]] feet. The [[human torch was denied]] a bank loan."
text.replace(/\[\[[^\]]+\]\]/g, "")

匹配括號的正則表達式將是

/\[\[[^\]]+\]\]/g

因此,Java等價於

text.replaceAll("\[\[[^\]]+\]\]", "");

並將其替換為空字符串

可以刪除雙括號和三括號的正則表達式

text.replaceAll("\[?\[\[[^\]]+\]\]\]?", "")

這對於replaceAll很簡單

str = str.replaceAll( "\\[\\[[^\\]]*\\]\\]", "" );

假定括號之間沒有]

嘗試使用以下代碼:

public class Test{
public static void main(String[] args) {
    String input = "How now [[brown cow ]]. The arsonist [[ had oddly shaped ]] feet. The [[human torch was denied]] a bank loan.";
    // Will replace all data within braces []
    String replaceAll = input.replaceAll("(\\[.+?\\])|(\\])", "");
    System.out.println(replaceAll);
}

}

希望這可以幫助。

tring s = "How now [[brown cow ]]. The arsonist [[ had oddly shaped ]] feet. The [[human torch was denied]] a bank loan.";

s=s.replaceAll("\\[.*?\\]","").replace("]","");

輸出:

How now . The arsonist  feet. The  a bank loan.

暫無
暫無

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

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