簡體   English   中英

使用正則表達式替換特定字符串-Java

[英]Using regex to replace a certain string - Java

我的目標是在字符串中替換某個特定的子字符串,而不會改變那些不是嚴格意義上的子字符串。 寫下來有點令人困惑,所以讓我向您展示一個例子。

說我有琴弦

"StackOverflow Stack Overflow Stacks"

現在,如果要使用,我想替換"Stack"

x.replaceAll("Stack", "")

我會得到

"Overflow  Overflow s"

這是不希望的,相反,我想要以下內容:

"StackOverflow Overflow Stacks"

使用單詞邊界

\\bStack\\b

您的要求並不完全清楚。

您需要考慮替換"Stack"的條件。

一個很好的例子是單詞邊界: x.replaceAll("\\\\bStack\\\\b", "")

這將確保替換由非單詞字符包圍的"Stack" ,而其他"Stack"實例將保持不變。

您可能需要更具體,僅在被空格包圍時才替換:

  • x.replaceAll("(?<=\\\\s)Stack(?=\\\\s)", "") // replaces only "Stack"
  • x.replaceAll("\\\\sStack\\\\s", "") // also gets rid of the surrounding whitespace

等等...

您可以使用單詞邊界來完成此操作:

同樣使用以下代碼:

String abc = "StackOverflow Stack Overflow Stacks";
abc = abc.replaceAll("\\bStack\\b", "");

System.out.println(abc);

結果打印為StackOverflow溢出堆棧

暫無
暫無

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

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