首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java从字符串的开头和结尾删除所有非字母数字字符

Java从字符串的开头和结尾删除所有非字母数字字符
EN

Stack Overflow用户
提问于 2014-07-26 03:02:49
回答 5查看 16.1K关注 0票数 5

我知道如何替换字符串中的所有非字母数字字符,但是如何从字符串的开头和结尾进行替换呢?

我需要这根绳子:

theString,

将是:

theString

替换字符串中的所有非字母数字字符:

代码语言:javascript
复制
s = s.replaceAll("[^a-zA-Z0-9\\s]", "");
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-07-26 03:07:52

使用^ (字符串开头匹配)和$ (末尾匹配)锚点:

代码语言:javascript
复制
s = s.replaceAll("^[^a-zA-Z0-9\\s]+|[^a-zA-Z0-9\\s]+$", "");
票数 14
EN

Stack Overflow用户

发布于 2016-08-22 09:16:28

使用:

代码语言:javascript
复制
s.replaceAll("^[^\\p{L}^\\p{N}\\s%]+|[^\\p{L}^\\p{N}\\s%]+$", "")

而不是:

代码语言:javascript
复制
s.replaceAll("^[^a-zA-Z0-9\\s]+|[^a-zA-Z0-9\\s]+$", "")

其中p{L}是来自任何语言的任何一种字母。

p{N}是任何脚本中的任何一种数字字符。

在拉丁文文字中使用,如西班牙语等非英语语言,例如:éstas,apuntó;will在后者成为;stas和apunt。前者也从事非拉丁语的工作。

对于所有印欧语,添加p{Mn}表示阿拉伯语和希伯来语元音:

代码语言:javascript
复制
s.replaceAll("^[^\\p{L}^\\p{N}^\\p{Mn}\\s%]+|[^\\p{L}^\\p{N}^\\p{Mn}\\s%]+$", "")

对于德拉维迪亚语,元音可能围绕辅音,而不是闪米特语言,在那里他们“在”字符一样的ಾ。为此,请使用p{Me}。所有语文使用:

代码语言:javascript
复制
s.replaceAll("^[^\\p{L}^\\p{N}^\\p{M}\\s%]+|[^\\p{L}^\\p{N}^\\p{M}\\s%]+$", "")

请参阅Unicode类别列表的regex教程

票数 1
EN

Stack Overflow用户

发布于 2014-07-26 12:17:39

这将移除所有非字母数字字符。

代码语言:javascript
复制
s = s.replaceAll("[^a-zA-Z0-9]", "");
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24967089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档