簡體   English   中英

如何刪除字符串中的特殊字符模式

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

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