簡體   English   中英

在特殊字符之間查找文本並替換字符串

[英]Find Text between special characters and replace string

例如,我有一個包含以下內容的String:

String s = "test string *67* **Hi**";

我想得到這個字符串:

*67*

有了星星,所以我可以開始替換那部分字符串。 我的代碼目前看起來像這樣:

String s = "test string *67* **Hi**";

        s = s.substring(s.indexOf("*") + 1);
        s = s.substring(0, s.indexOf("*"));

這輸出: 67沒有星星。

我想知道如何在某個特殊字符之間獲取字符串,但不能將字符組合在一起,就像我想要的那樣。

輸出應如下:

//output: test string hello **hi**

要僅替換特殊字符之間的字符串:

String regex = "(\\s\\*)([^*]+)(\\*\\s)";
String s = "test string *67* **Hi**";
System.out.println(s.replaceAll(regex,"$1hello$3"));

// output: test string *hello* **Hi**

DEMO和正則表達式的解釋

編輯
要刪除特殊字符,請使用以下正則表達式:

String regex = "(\\s)(\\*[^*]+\\*)(\\s)";

DEMO

你只需要擴展邊界:

s = s.substring(s.indexOf("*"));
s = s.substring(0, s.indexOf("*", 1)+1);
s = s.substring(s.indexOf("*"));
s = s.substring(0, s.indexOf("*", 1) + 1);

你的+1在錯誤的地方:)然后你只需要從第二個位置開始找到下一個

我想你甚至可以用List獲得你的輸出

String s = "test string *67* **Hi**";

List<String> sList = Arrays.asList(s.split(" "));

System.out.println(sarray.get(sarray.indexOf("*67*")));

希望這會有所幫助。

暫無
暫無

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

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