我知道如何替换字符串中的所有非字母数字字符,但是如何从字符串的开头和结尾进行替换呢?
我需要这根绳子:
theString,
将是:
theString
替换字符串中的所有非字母数字字符:
s = s.replaceAll("[^a-zA-Z0-9\\s]", "");发布于 2014-07-26 03:07:52
使用^ (字符串开头匹配)和$ (末尾匹配)锚点:
s = s.replaceAll("^[^a-zA-Z0-9\\s]+|[^a-zA-Z0-9\\s]+$", "");发布于 2016-08-22 09:16:28
使用:
s.replaceAll("^[^\\p{L}^\\p{N}\\s%]+|[^\\p{L}^\\p{N}\\s%]+$", "")而不是:
s.replaceAll("^[^a-zA-Z0-9\\s]+|[^a-zA-Z0-9\\s]+$", "")其中p{L}是来自任何语言的任何一种字母。
p{N}是任何脚本中的任何一种数字字符。
在拉丁文文字中使用,如西班牙语等非英语语言,例如:éstas,apuntó;will在后者成为;stas和apunt。前者也从事非拉丁语的工作。
对于所有印欧语,添加p{Mn}表示阿拉伯语和希伯来语元音:
s.replaceAll("^[^\\p{L}^\\p{N}^\\p{Mn}\\s%]+|[^\\p{L}^\\p{N}^\\p{Mn}\\s%]+$", "")对于德拉维迪亚语,元音可能围绕辅音,而不是闪米特语言,在那里他们“在”字符一样的ಾ。为此,请使用p{Me}。所有语文使用:
s.replaceAll("^[^\\p{L}^\\p{N}^\\p{M}\\s%]+|[^\\p{L}^\\p{N}^\\p{M}\\s%]+$", "")发布于 2014-07-26 12:17:39
这将移除所有非字母数字字符。
s = s.replaceAll("[^a-zA-Z0-9]", "");https://stackoverflow.com/questions/24967089
复制相似问题