Apex - 从字符串中删除除 ''+" 之外的特殊字符

Apex - remove special characters from a string except for ''+"

在 Apex 中,我想删除字符串中除“+”之外的所有特殊字符。这个字符串实际上是一个 phone 数字。我做了以下。

      String sampleText = '+44 597/58-31-30';
      sampleText = sampleText.replaceAll('\D','');
      System.debug(sampleText);

所以,它打印出来的是44597583130。 但我想保留符号 +,因为它代表 00。

有人可以帮我解决这个问题吗?

可能的解决方案

String sampleText = '+44 597/58-31-30';
// exclude all characters which you want to keep 
System.debug(sampleText.replaceAll('[^\+|\d]',''));

// list explicitly each char which must be replaced    
System.debug(sampleText.replaceAll('/|-| ',''));

两种情况下的输出相同

|DEBUG| +44597583130

|DEBUG| +44597583130

编辑

String sampleText = '+0032 +497/+59-31-40';
System.debug(sampleText.replaceAll('(?!^\+)[^\d]',''));

|DEBUG|+0032497593140