[英]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.