为了账号安全,请及时绑定邮箱和手机立即绑定

匹配字符串÷x%的正则表达式

匹配字符串÷x%的正则表达式

料青山看我应如是 2021-06-28 16:00:24
我一直在尝试创建一个匹配以下模式的正则表达式:÷x%这是我的代码:String string = "÷x%2%x#3$$@";String myregex = "all the things I've tried";string = string.replaceAll(myregex,"÷1x#1$%");我尝试了以下正则表达式:(÷x%) , [÷][x][%] , [÷]{1}[x]{1}[%]{1}我正在使用 NetBeans IDE,它给了我一个非法组引用但是,当我将 string 的值更改为其他内容时,例如一个单词。NetBeans 没有例外。任何想法,谢谢
查看完整描述

3 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

要替换所有出现的子字符串,您不需要模式。您可以使用String.replace():


String input = "÷x%abc÷x%def÷x%";

String output = input.replace("÷x%", "÷1x#1$%");

System.out.println(output); // ÷1x#1$%abc÷1x#1$%def÷1x#1$%

根据方法javadoc:


用指定的文字替换序列替换此字符串中与文字目标序列匹配的每个子字符串。


查看完整回答
反对 回复 2021-06-30
?
交互式爱情

TA贡献1712条经验 获得超3个赞

在 Java 正则表达式中,您必须转义 $ 符号。


如果您写 $%,您将指代不存在的组 %。


你可以试试:


try {

    String string = "÷x%2%x#3$$@";

    String myregex = "÷x%";

    String replace = "÷1x#1\\$%";

    String resultString = string.replaceAll(myregex, replace);

} catch (PatternSyntaxException ex) {

    // Syntax error in the regular expression

} catch (IllegalArgumentException ex) {

    // Syntax error in the replacement text (unescaped $ signs?)

} catch (IndexOutOfBoundsException ex) {

    // Non-existent backreference used the replacement text

}


查看完整回答
反对 回复 2021-06-30
  • 3 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信