繁体   English   中英

正则表达式删除除字符和数字之外的所有内容

[英]Regular Expression to remove everything but characters and numbers

我想从字符串中删除除字符 az、AZ 和 0-9 之外的所有内容,因此我需要为 Java 的string.replaceAll(regex, "");

旧字符串如下所示:

MAX EUK_1334-PP/B+

新字符串应如下所示:

MAXEUK1334PPB

可能有一个更简洁的正则表达式,但这肯定会起作用:

string.replaceAll("[^a-zA-Z0-9]", "");
string.replaceAll("[^a-zA-Z0-9]+", "");
String test = "MAX EUK_1334-PP/B+";     
test = test.replaceAll("[\\W_]", "");
System.out.println(test + "\n");

打印结果:

MAXEUK1334PPB

有些人忘记了“_”字符:

String regex = "[_\\W]";

public class RegexFun2 {
   public static void main(String[] args) {
      String test = "MAX EUK_1334-PP/B+";

      String regex = "[_\\W]";

      String result = test.replaceAll(regex, "");
      System.out.println(result);
   }
}

但我仍然认为 OP 是在欺骗自己,因为他没有证明他首先尝试过,并在他原来的问题中发布了他的尝试。 只是我的2美分。

您可以使用字符的 ASCII 值:

while(!end of string){
    if(valueOfChar is between 48-57 or 65-90 or 97-122)
          write it to your string
}

这可能会有所帮助,但我不知道您是否应该使用replaceAll编写代码。 replaceAll和此代码都具有相同的性能( O(n) )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM