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
在 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