从字符串中删除特殊字符在 Groovy 脚本中

Removing special characters from a string In a Groovy Script

我想使用 groovy 从字符串中删除特殊字符,我快要成功了,但它正在删除我想保留的已经存在的空格。我只想删除特殊字符(不留空格)。我是 运行 以下邮政编码 L&65$$ OBH

def removespecialpostcodce = PostCode.replaceAll("[^a-zA-Z0-9]+","")
log.info removespecialpostcodce 

目前 return 是 L65OBH 但我正在寻找 return L65 OBH

有人能帮忙吗?

使用下面的代码:

 PostCode.replaceAll("[^a-zA-Z0-9 ]+","")

而不是

 PostCode.replaceAll("[^a-zA-Z0-9]+","")

要删除字符串中的所有特殊字符,您可以使用反转正则表达式字符:

replaceAll("[^A-Za-z-0-1]","")    

但我注意到此解决方案存在局限性,因为此代码:

String str = "..\.-._./-^+* ".replaceAll("[^A-Za-z-0-1 ]","")
System.out.println("str: <"+str+">")

输出:

<-- >  

如您所见,未删除的“-”和“”。
要删除它们,您可以执行以下操作:

str = str.replaceAll("[- ]", "")