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