我们如何从java中的特定位置的字符串中删除特殊字符?

问题描述 投票:0回答:1

我有一个场景,我必须从字符串中删除特殊字符。

输入字符串:

name=/"xyz =bcd .olm --=myname/"

输出字符串必须类似于:

name=/"xyz bcd olm myname/"

我尝试了如下所示的方法,但仍然无法得出确切的正则表达式。谁能帮我找出我做错了什么?

    String inputString = "name=\"xyz =bcd .olm --=myname\"";
    String regex = "(?<=name=\")[^<]*(?<!/)(\\w+)(?=[^>]*>)";
    String outputString = inputString.replaceAll(regex, "$1");

    System.out.println(outputString);
java regex special-characters
1个回答
0
投票

尝试:

[^\w/\" ](?!(?:.*\/\"){2})

匹配:

  • [^\w/\"]
    任何字符,不是
    \w
    字符、
    /
    "
  • (?!...)
    但前提是不是……
    • (?:(?:.*\/\")){2}
      ...后跟
      /"
      两次 -> 排除您不希望匹配的每个特殊字符

只需替换为空字符串即可。

参见https://regex101.com/r/WotO4b/latest

© www.soinside.com 2019 - 2024. All rights reserved.