0

我正在尝试搜索此字符串“Spelled [wurd] Show IPA noun 1.a”

并使用以下方法删除 [ ] 之外的所有内容:

String pron = noHTML.replaceAll("\\[.*?]","");  //(there is a double \\ \\ here...)

这取代了里面的一切..如何扭转它?:S

我试过组合!和 ^ 但它似乎没有工作。

4

3 回答 3

3

我只需将整个字符串替换为括号中的部分:

String pron = noHTML.replaceAll(".*?\\[(.*?)\\].*", "$1");

这 (1) 匹配整个字符串,(2) 捕获括号中的部分并将其存储在第一个捕获组中,并且 (3) 使用该组作为整个匹配字符串的替换。

在结果中包含括号只是一个问题或()向外移动一点:

String pron = noHTML.replaceAll(".*?(\\[.*?\\]).*", "$1");
于 2013-04-04T06:10:17.610 回答
0

试试这个 -

String pron = noHTML.replaceAll("(^.*\\[)|(\\].*$)",""); 

要包含括号,请使用前瞻后视-

String pron = noHTML.replaceAll("(^.*(?=\\[))|((?<=\\]).*$)",""); 

有关lookaheadlookbehind的更多信息,请参阅http://www.regular-expressions.info/lookaround.html

于 2013-04-04T05:30:06.647 回答
0

你需要这个:

String pron = noHTML.replaceAll("\[([^\[\]].*)\]","");

这里:

http://rubular.com/r/95ETge7Pyv

于 2013-04-04T05:44:29.917 回答