java - 用空字符串替换所有非字母数字字符

我尝试使用这个但没有工作 -

return value.replaceAll("/[^A-Za-z0-9 ]/", "");

12个解决方案

209 votes

使用[^A-Za-z0-9]。

注意:删除空格,因为通常不会将其视为字母数字。

Mirek Pluta answered 2019-04-05T01:20:25Z

113 votes

尝试

return value.replaceAll("[^A-Za-z0-9]", "");

要么

return value.replaceAll("[\\W]|_", "");

Andrew Duffy answered 2019-04-05T01:20:48Z

47 votes

return value.replaceAll("[^A-Za-z0-9 ]", "");

这将使空间保持不变。 我认为这就是你想要的。 否则,从正则表达式中删除空格。

erickson answered 2019-04-05T01:21:13Z

46 votes

您应该知道[^a-zA-Z]将替换字符范围A-Z / a-z中不属于自身的字符。 这意味着特殊字符,如é,ß等或西里尔字符等将被删除。

如果不需要替换这些字符,请使用预定义的字符类:

someString.replaceAll("[^\\p{IsAlphabetic}^\\p{IsDigit}]", "");

PS:\p{Alnum}没有达到这个效果,它的作用与[A-Za-z0-9]相同。

Andre Steingress answered 2019-04-05T01:21:57Z

20 votes

你也可以尝试这个更简单的正则表达式:

str = str.replaceAll("\\P{Alnum}", "");

saurav answered 2019-04-05T01:22:23Z

10 votes

Java的正则表达式不需要在正则表达式周围放置正斜杠(/)或任何其他分隔符,例如,与其他语言(如Perl)相反。

abyx answered 2019-04-05T01:22:51Z

8 votes

我创建了这个方法来创建文件名:

public static String safeChar(String input)

{

char[] allowed = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_".toCharArray();

char[] charArray = input.toString().toCharArray();

StringBuilder result = new StringBuilder();

for (char c : charArray)

{

for (char a : allowed)

{

if(c==a) result.append(a);

}

}

return result.toString();

}

zneo answered 2019-04-05T01:23:17Z

1 votes

简单方法:

public boolean isBlank(String value) {

return (value == null || value.equals("") || value.equals("null") || value.trim().equals(""));

}

public String normalizeOnlyLettersNumbers(String str) {

if (!isBlank(str)) {

return str.replaceAll("[^\\p{L}\\p{Nd}]+", "");

} else {

return "";

}

}

Alberto Cerqueira answered 2019-04-05T01:23:39Z

1 votes

public static void main(String[] args) {

String value = " Chlamydia_spp. IgG, IgM & IgA Abs (8006) ";

System.out.println(value.replaceAll("[^A-Za-z0-9]", ""));

}

输出:ChlamydiasppIgGIgMIgAAbs8006

Github:[https://github.com/AlbinViju/Learning/blob/master/StripNonAlphaNumericFromString.java]

Albin answered 2019-04-05T01:24:13Z

1 votes

如果您还想允许不属于ascii字符集的字母数字字符,例如德语变音符号,您可以考虑使用以下解决方案:

String value = "your value";

// this could be placed as a static final constant, so the compiling is only done once

Pattern pattern = Pattern.compile("[^\\w]", Pattern.UNICODE_CHARACTER_CLASS);

value = pattern.matcher(value).replaceAll("");

请注意,使用UNICODE_CHARACTER_CLASS标志可能会对性能造成影响(请参阅此标志的javadoc)

snap answered 2019-04-05T01:24:49Z

0 votes

使用Guava,您可以轻松组合不同类型的标准。 您可以使用以下特定解决方案:

value = CharMatcher.inRange('0', '9')

.or(CharMatcher.inRange('a', 'z')

.or(CharMatcher.inRange('A', 'Z'))).retainFrom(value)

Debmalya Biswas answered 2019-04-05T01:25:15Z

0 votes

解:

0=0 = all characters included from 0 to 9

说明:

0=0 = all characters included from 0 to 9   当插入符号^作为方括号内的第一个字符出现时,它会否定该模式。 此模式匹配除a或b或c之外的任何字符。

将关键字看作两个函数:

0=0 = all characters included from 0 to 9

0=0 = all characters included from 0 to 9

此外,关于模式:

0=0 = all characters included from 0 to 9

0=0 = all characters included from 0 to 9

0=0 = all characters included from 0 to 9

因此,它将替换模式中包含的所有char

GalloCedrone answered 2019-04-05T01:26:34Z

java 正则替换非数字和字母_java - 用空字符串替换所有非字母数字字符相关推荐

  1. linux中替换命令详解,linux中sed命令字符串替换的用法详解

    Linux系统中sed命令可以将字符串批量替换,省去了很多麻烦,下面由学习啦小编为大家整理了linux系统中sed命令字符串替换的用法详解,希望对大家有帮助! linux中sed命令字符串替换的用法详 ...

  2. pandas 空字符串与na区别_关于python:Pandas用空白/空字符串替换NaN

    我有一个Pandas Dataframe,如下所示: 1    2       3 0  a  NaN    read 1  b    l  unread 2  c  NaN    read 我想用空 ...

  3. mysql 替换空值_MySQL查询用空字符串替换NULL

    MySQL查询用空字符串替换NULL 如何用空字符串替换select中的NULL值?输出" NULL"值看起来不是很专业. 这是非常不寻常的,根据我的语法,我希望它能正常工作.希望 ...

  4. java string 查找大写字母_java实现统计字符串中大写字母,小写字母及数字出现次数的方法示例...

    本文实例讲述了java实现统计字符串中大写字母,小写字母及数字出现次数的方法.分享给大家供大家参考,具体如下: public class TestSubstring { public static v ...

  5. java正则匹配第一个符合的_java正则贪婪匹配指定字符开头和结尾或括号中内容...

    项目中需要这样二种场景,需要贪婪匹配一个字符串,按照相应的匹配规则,替换指定的字符. 一.场景一匹配规则 1.中括号开头紧接2位数字 2.中间部分任意 3.右中括号结尾 代码如下: String st ...

  6. c语言随机产生大小写字母,c# 产生随机字符串,包括大小写字母和数字

    #region MyRegion //產生密碼 protected static string GetPwd() { return CreateRandomNum123(2) + CreateRand ...

  7. 连续字母长度 给定一个字符串 只包含大写字母

    注意!答案仅作为参考(实际考试中下列代码通过用例100%,但不代表最优解) 给定一个字符串 只包含大写字母 求在包含同一字母的子串中 长度第K长的子串 相同字母只取最长的子串 输入第一行 一个子串 1 ...

  8. python统计元音字母个数_统计字符串中各元音字母(即A,E,I,O,U)的个数。

    下列给定函数中,函数 fun 的功能是:统计字符串中各元音字母 ( 即 A , E , I , O , U) 的个数.注意:字 母不分大小写.例如,输入 THIs is a boot ,则应输出是 1 ...

  9. 将大写字母转换为小写字母(将该字符串中的大写字母转换成小写字母,之后返回新的字符串。)

    将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例 1: 输入: "Hello" 输出: "hello" 示例 2: 输入: "here ...

最新文章

  1. 程序媛眼中的程序猿原来是这样子的!
  2. UE研究方法—ethnography(人种志)
  3. 并发编程 - 协程 - 1.协程概念/2.greenlet模块/3.gevent模块/4.gevent实现并发的套接字通信...
  4. 一张图看透微信公众号、企业号、小程序
  5. 转: 关于 ssl的建立链接的过程
  6. vscode php插件_JS之 提高开发效率的Visual Studio Code插件
  7. Android 系统(95)---Android build.prop参数详解
  8. Redis:从应用到底层,都在这儿了!
  9. outlook客户端接收邮件报错0x80040600
  10. 微星z370安装linux系统,微星z370主板装win7及BIOS设置详细教程
  11. Idea插件开发总结
  12. SUI Mobile 手机移动端H5框架
  13. 威纶通触摸屏的自由口通讯
  14. 腾讯地图SDK公交路线规划Demo
  15. hau 1870 愚人节的礼物(栈)
  16. PD win10虚拟机 主机互联
  17. java 百万数据查询_JAVA技巧:Java中的大量数据查询
  18. impala常见错误
  19. Timeline 时间线基础用法
  20. 如何将SolidWork许可管理器用于Draftsight Enterprise?

热门文章

  1. 真就释放双手?C#模拟鼠标操作
  2. 历届奥运会场馆经典回顾(1992-2008)
  3. 12款Linux命令行终端工具
  4. 高斯求和python
  5. 信号完整性的一些概念(2022年6月14日学习笔记)
  6. python科学计算2 数据组织形式与numpy入门
  7. 数据最高管理部门——国家数据局成立!
  8. Matlab数据库编程指南
  9. 【AE—3D Stroke 描边不跟随路径怎么办】
  10. Movavi Video Editor Plus v21.3.0(程序安装包+素材安装包)