java如何替换字符串0A_关于正则表达式:Java替换字符串中的所有方括号

我想把方括号从绳子上取下来,但我不知道怎么做。

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);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值