[英]How to remove a special character pattern in a string
我有一個字符串名稱s,
String s = "He can speak English and Sinhala.[1]He<ename> has edited 12 CSE Staff Research Publications.[1][2]"
我想從字符串中刪除[1]
和[1][2]
。 請注意,我們可以在方括號內包含任何數字,也可以在方括號內沒有任何數字(例如[number][number][number]...
)。 我試過用這個
String removedNoTag = s.replaceAll("[\\[0-9\\]]","");
是的,它刪除了所有的[數字] ..模式。 但它也會刪除文本中的所有數字 (也刪除12
)。
誰能告訴我該怎么做?
嘗試以下操作: String removedNoTag = s.replaceAll("\\\\[\\\\d+\\\\]","");
您正在使用正則表達式轉義錯誤的括號。 您正在尋找的是:
String removedNoTag = s.replaceAll("\\[[0-9]+\\]","");
要么
String removedNoTag = s.replaceAll("\\[\\d+\\]","");
\\d
是[0-9]
縮寫。
外括號定義了一組要刪除的字符。 該集合定義為[
, ]
和0-9
。 因此,可以檢測到它們的任何組合(例如[]
, 2
, ]
, [3]
, [324]
, ]1[[[
)。
而是嘗試\\\\[\\\\d+\\\\]
,這表示方括號,一個或多個數字( \\d
)和方括號。
因為它刪除了數字或方括號字符的任何實例。
替換為: \\\\[[0-9]+\\\\]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.