我正在尝试使用Java RegEx,并尝试为字符串操作考虑不同的场景。我可以从字符串中剔除特殊字符,如下所示:
String test = "A man, 66 a plan, a can*()al:55 Panama";
String test = test.replaceAll("[a-zA-Z0-9]", "");
System.out.println(test);输出:,,*():
如果我想用管道分隔符返回这些特殊字符,该怎么办?因此,预期输出为:,|,|*|(|)|:|
发布于 2020-06-02 02:13:07
您可以将字母数字和空格以外的符号匹配并提取到列表中,并使用|连接其元素
String test = "A man, 66 a plan, a can*()al:55 Panama";
Matcher m = Pattern.compile("[^a-zA-Z0-9\\s]").matcher(test);
List<String> results = new ArrayList<>();
while (m.find()) {
results.add( m.group() );
}
System.out.println(String.join("|", results));请参阅可产生,|,|*|(|)|:的Java demo。
https://stackoverflow.com/questions/62137847
复制相似问题