【问题标题】:Replacing special characters in Java String [duplicate]替换Java字符串中的特殊字符[重复]
【发布时间】:2020-07-21 19:29:15
【问题描述】:

我想替换下面显示的字符串中的所有特殊字符:

String a="Test’‵"
    

我想用破折号 (-) 替换 ’ 和‵。我尝试了以下方法:

a=a.replaceAll("[’|‵]", "-");
    
    

这会产生以下结果:

测试-----

而不是

测试--

我怎样才能达到预期的效果?

【问题讨论】:

  • 错字?使用 ( ) 而不是 [ ]。一个代表组,另一个代表字符类,它只能匹配指定“范围”中的单个字符。或者甚至不使用(..),只需删除[]
  • 在使用正则表达式之前,您必须首先解决您的编码问题(utf-8 => Windows-1252 = 正确的 utf-8 编码)。

标签: java regex


【解决方案1】:

不要使用方括号,因为它代表一组要匹配的单个字符(character class)。

a=a.replaceAll("’|‵", "-");

Demo!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 2018-12-13
    • 1970-01-01
    • 2016-09-21
    • 2020-04-13
    相关资源
    最近更新 更多