簡體   English   中英

使用正則表達式替換不是數字,逗號或點的所有字符

[英]Replacing all characters that are not digits, commas or dots using regular expression

這是我在做什么:

public static String replaceCharAt(String s, int pos, char c) {
    return s.substring(0, pos) + c + s.substring(pos + 1);
  }

for(int i=0;i<str.length();i++)
{
    if(str.charAt(i)!=',' || str.charAt(i)!='.' || !Character.isDigit(str.charAt(i)))
         replaceCharAt(str,i,'x');
}

但有人告訴我,正則表達式更有效。 不幸的是,我不知道如何使用正則表達式,這是我第一次學習。

這是我用來替換所有非數字字符的正則表達式

str.replaceAll("\\D", "")

但是如何使點和逗號不被刪除?

您可以使用否定的字符類 [^\\d.,]+一次或多次不匹配數字,點或逗號。

在Java中:

String regex = "[^\\d.,]+";

演示版

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM