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. DataTable 的 JSON 序列化
  2. php_rce-攻防世界-web-ThinkPHP版本5的相关漏洞
  3. esri geometry-api-java的maven创建
  4. 如何用Java编写类似C的Sizeof函数
  5. java 设计模式 示例_Java中的策略设计模式-示例教程
  6. Babel+vscode实现APICloud开发中兼容ES6及以上代码
  7. 光电整纬机狭缝检测工作原理
  8. JS 操作 HTML 和 AJAX 请求后台数据
  9. 蔡工RK系列Android驱动开发入门视频课程
  10. IDEA 不识别的MAVEN 项目应如何处理
  11. WEB页面自打开的响应顺序
  12. java网上书店模板_网上书店静态网站模板
  13. 什么是股票交易接口?
  14. 表单实现登录注册功能
  15. 如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数。
  16. correl函数_教你利用Correl函数返回相关系数并确定属性关系
  17. IQ 智力题 有答案
  18. 2022-2028年中国镓行业市场研究分析及投资前景评估报告
  19. 【论文翻译-3】Attention U-Net: Learning Where to Look for the Pancreas
  20. 个人信息安全影响评估流程

热门文章

  1. 5款最好用的内网渗透工具,切勿用作非法途径
  2. 通过逆向学习软件设计(2)
  3. 16句微博上的经典语录
  4. Unity 禁用相机权限,AR系统退出的问题
  5. 魅族MX简单实用小技巧+使用启示+新人必看
  6. 雪佛兰-科鲁泽-车机破解[安装第三方软件]
  7. JAVA基础WEB阶段第八天——MYSQL数据库(二)电商后台产品综合案例之练习各条命令
  8. mp4要整个下载完才能播放的问题
  9. PCB画板(Altium Designer)
  10. MARI投射(映射)XYZ贴图(置换贴图),效果马赛克,很模糊,图片(贴图)明明很大很高清了依旧如此。