2013-03-19 206 views
0

我的Java应用程序将会得到如下形式的字符串:如何去除Java字符串中的大括号?

How now [[brown cow ]]. The arsonist [[ had oddly shaped ]] feet. The [[human torch was denied]] a bank loan. 

,需要一个正则表达式/方法,将剥离出的[[ ]]每个实例(和全包文本),从而把上面的字符串为:

How now. The arsonist feet. The a bank loan. 

声明保留的双空格(arsonistfeet,与和之间Thea之间)?这也很重要。

不确定这里的正则表达式是否合适,或者是否有更有效的方法剔除不需要的[[ ]]实例。

+0

@NilsH如何与string.replace? – 2013-03-19 10:08:51

+0

@NilsH与String.replace很难删除括号内的部分。正则表达式似乎是要走的路。 – 2013-03-19 10:09:08

+0

'[[有些好]或者可能[[不好]]'预期的行为是什么' – nhahtdh 2013-03-19 10:12:58

回答

3

这是javascript。

var text = "How now [[brown cow ]]. The arsonist [[ had oddly shaped ]] feet. The [[human torch was denied]] a bank loan." 
text.replace(/\[\[[^\]]+\]\]/g, "") 

要匹配的正则表达式的括号将

/\[\[[^\]]+\]\]/g 

所以相当于Java将是

text.replaceAll("\[\[[^\]]+\]\]", ""); 

,并用一个空字符串

正则表达式,可以删除这两个更换双重和三重大括号

text.replaceAll("\[?\[\[[^\]]+\]\]\]?", "") 
+0

这是什么语言? – 2013-03-19 10:10:48

+3

@defaultlocale看起来像Javascript:p – HamZa 2013-03-19 10:11:35

+0

@Pankaj OP问题是在java – 2013-03-19 10:15:15

2

这是replaceAll

str = str.replaceAll("\\[\\[[^\\]]*\\]\\]", ""); 

简单假设括号之间没有]

+0

谢谢@MikeM(+1) - 以及如果我有一些三重大括号的实例('[[[]]]') - 是否适用同样的正则表达式,还是必须更改它?再次感谢! – IAmYourFaja 2013-03-19 10:15:37

2

尝试使用此代码:

public class Test{ 
public static void main(String[] args) { 
    String input = "How now [[brown cow ]]. The arsonist [[ had oddly shaped ]] feet. The [[human torch was denied]] a bank loan."; 
    // Will replace all data within braces [] 
    String replaceAll = input.replaceAll("(\\[.+?\\])|(\\])", ""); 
    System.out.println(replaceAll); 
} 

}

希望这有助于。

+0

谢谢@Ankur(+1) - 请参阅我在MikeM的回答下的评论 - 我对你有同样的问题! – IAmYourFaja 2013-03-19 10:17:07

+0

是@DirtyMikeAndTheBoys - 我给你的代码将会正常工作。 :-) 需要帮助请叫我。 – 2013-03-19 10:22:11

+0

@MikeM - 对于所有的组合都可以正常工作。我也测试过它。尝试一次。 – 2013-03-19 11:04:27

2
tring s = "How now [[brown cow ]]. The arsonist [[ had oddly shaped ]] feet. The [[human torch was denied]] a bank loan."; 

s=s.replaceAll("\\[.*?\\]","").replace("]",""); 

输出:

How now . The arsonist feet. The a bank loan. 
+0

谢谢@Achintya Jha(+1) - 请参阅我在MikeM的回答下的评论 - 我对你有同样的问题! – IAmYourFaja 2013-03-19 10:20:02

+0

@DirtyMikeAndTheBoys它也适用于[[[]]]。 – 2013-03-19 10:22:57

相关问题