【发布时间】:2015-08-31 12:31:26
【问题描述】:
字符串格式如下:
[anything anything]
两者之间用空格隔开,'anything's。
我试过了:
(string).replaceAll("(^[)|(]$)","");
(string).replaceAll("(^\[)|(\]$)","");
但后者给了我一个编译错误,而第一个没有做任何事情。我基于以下实现了我当前的解决方案:
Java Regex to remove start/end single quotes but leave inside quotes
环顾 SO 给我带来了许多问题,这些问题回答了与我类似的问题,但实施他们的解决方案不起作用(他们要么什么都不做,要么产生编译错误):
regex - match brackets but exclude them from results
Regular Expressions on Punctuation
我做错了什么?
【问题讨论】:
-
必须转义\
-
有人发布了正确的解决方案,并在我评论时将其删除。不管是谁,都是正确的,所以请重新发布!
-
您必须将 Java 文字字符串中的 \ 转义为 \\,以便正则表达式解析器将其解释为 \[ (这意味着文字 [ )
-
是的,双重转义是 Java 的东西——正则表达式本身应该只是一个单一的 \,但 Java 也将 \ 字符视为转义字符,因此您必须将其加倍。
-
@apgp88 是的,该建议在我的脚本中有效。原因正如 aryn 所说