我想把方括号从绳子上取下来,但我不知道怎么做。
String str ="[Chrissman-@1]";
str = replaceAll("\\[\\]","");
String[] temp = str.split("-@");
System.out.println("Nickname:" + temp[0] +" | Power:" + temp[1]);
但我的结果是:【克里斯曼1】方括号不能去掉。
我尝试使用不同的regex:"\\[.*?\\]","\\[\\d+\\]"但结果是一样的,方括号仍然附着在字符串上。
编辑:
我试过:
str.replaceAll("]","");
str.replaceAll("[","");
现在我得到:
Exception in thread"Thread-4" java.util.regex.PatternSyntaxException: Unclosed character class near index 0
[
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.clazz(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
replaceall方法正在尝试匹配不在String中的字符串文字[],请尝试单独替换这些项。
String str ="[Chrissman-@1]";
str = str.replaceAll("\\[","").replaceAll("\\]","");
+1唯一的意见是应该是str.replaceAll。
@MarcBaumbach很好,我更新了。谢谢.
哎呀,我要被甩了。(我是说这是恭维)
不,它不工作。在线程"thel-4"java. UTI.ReGEX.TopnSythExtExcExc:在索引0附近的未关闭字符类[^在java. U.I.ReEX.Fr.Eng.错误(未知源),在Java.UTI.ReXEX.Fr.Calz(未知源),在Java.UTI.ReEX.Fr.Eng.序列(未知源)的Java.UTI.ReEX.Fr.EXPR(未知源)JavaUT.ReExx.PbT.N.CPLIL在Java.UTI.ReEX..Time.init >(未知源)中,在Java.UTI.ReEX.Stult.Java.Lang.Studio中编译(未知源).RePATALL(未知源)
方括号绝对是正则表达式中的"特殊"字符-它们用于范围,例如[a-z]。
@琼斯基特感谢你指出这一点。我正在搜索Java特殊字符列表,但我忘记了RePATALL正在寻找正则表达式。
@Zbarceachristian我删除了答案中未加括号的部分,对于任何混淆,我深表歉意。原始文件是否有错误?
现在开始工作了:(-)非常感谢@kevinbowersox。我必须用Java正则表达式来复习我的知识。我完全忘记了。
@Zbarceachristian很高兴我能帮忙。
@Zbarceachristian:但是为什么要使用正则表达式呢?
我还能用什么?
作为一个侧面的nte卷曲支架,{}也被保留。stackoverflow.com/questions/8751482/…
叹息…方括号的双斜线。如此烦人
您的regex只匹配(并删除)后面的方括号。改为使用:
str = str.replaceAll("\\[|\\]","");
如果只想用中间的内容替换括号对,可以使用以下方法:
str = str.replaceAll("\\[(.*?)\\]","$1");
这应该是公认的答案,更清晰、更简洁。
您目前正在尝试删除确切的字符串[]-两个方括号之间没有任何内容。相反,您希望删除所有[,并单独删除所有]。
我个人会避免在这里使用replaceAll,因为它会导致更多的混乱,因为regex部分-我会使用:
String replaced = original.replace("[","").replace("]","");
如果您真的想进行完全模式匹配,那么只使用使用正则表达式的方法。当您只想替换所有出现的固定字符串时,replace更易于阅读和理解。
(有其他方法可以使用正则表达式形式并真正匹配模式,但我认为上面的代码要简单得多。)
+这里根本不需要更换。
使用regex [\\[\\]]。-
String str ="[Chrissman-@1]";
String[] temp = str.replaceAll("[\\[\\]]","").split("-@");
System.out.println("Nickname:" + temp[0] +" | Power:" + temp[1]);
输出-
Nickname: Chrissman | Power: 1
不,它不工作。
什么不起作用?专线!
对我来说很好。谢谢!
您也可以这样做:
String data ="[yourdata]";
String regex ="\\[|\\]";
data = data .replaceAll(regex,"");
System.out.println(data);
Use this line:) String result = strCurBal.replaceAll("[(" what ever u need to remove")]","");
String strCurBal ="(+)3428";
Log.e("Agilanbu before omit", strCurBal);
String result = strCurBal.replaceAll("[()]",""); // () removing special characters from string
Log.e("Agilanbu after omit", result);
o/p :
Agilanbu before omit : (+)3428
Agilanbu after omit : +3428
String finalVal = result.replaceAll("[+]",""); // + removing special characters from string
Log.e("Agilanbu finalVal ", finalVal);
o/p
Agilanbu finalVal : 3428
String finalVal1 = result.replaceAll("[+]","-"); // insert | append | replace the special characters from string
Log.e("Agilanbu finalVal ", finalVal1);
o/p
Agilanbu finalVal : -3428 // replacing the + symbol to -
拆下支架后,我想添加-开始时如何实现此示例:-123
string finalval1=result.replaceall([()]",-");//请使用此代码,这是什么要求?O/P Agilanbu Finalval:-3428/*将()符号替换为-*/
我的值是(324),我希望它是-324,使用这个m.replaceall("[()",-");iam得到-324-,请帮助我。
string result="(3428)";log.e("agilanbu finalval 0",result);string finalval11=result.replaceall("[(]",-");log.e("agilanbu finalval 1",finalval11);string finalval=finalval11.replaceall("[)",");log.e("agilanbu finalval 2",finalval);
String str, str1;
Scanner sc = new Scanner(System.in);
System.out.print("Enter a String :");
str = sc.nextLine();
str1 = str.replaceAll("[aeiouAEIOU]","");
System.out.print(str1);