簡體   English   中英

替換為忽略大小寫

[英]Replace with ignore case sensitive

我需要從字符串中替換$achieved$ ,並且它應不區分大小寫。 因為有時從服務器以字符串形式獲取$ACHIeved$ ,所以它應該忽略大小寫。 我正在使用下面的代碼。

stringWithoutFormating.replace(Constant.PROGRAM_DETAILS_ENTRY_CONTENT_FIELDS.achieved, String.valueOf(achieved));

我也嘗試過(?i) ,但無法正常工作。
可以用正則表達式完成嗎,如果是,則正則表達式應該是什么?

首先, replace執行文字字符串替換,並且不接受正則表達式作為其第一個參數。 您需要使用replaceFirstreplaceAll 接下來, $是一個特殊的正則表達式char(它匹配字符串的結尾),因此必須將其轉義。 您可以為此使用Pattern.quote 因此,您可以使用

stringWithoutFormating = stringWithoutFormating.replaceAll("(?i)" + Pattern.quote(Constant.PROGRAM_DETAILS_ENTRY_CONTENT_FIELDS.achieved), String.valueOf(achieved).replace("$", "\\$"));

在這里, (?i)將使搜索不區分大小寫, Pattern.quote(Constant.PROGRAM_DETAILS_ENTRY_CONTENT_FIELDS.achieved)會將$achieved$變成\\$achieved\\$ ,然后替換將發生。 替換執行的.replace("$", "\\\\$")是必需的,以便在替換中轉義文字$

暫無
暫無

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

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