簡體   English   中英

刪除java中字符串中的特殊字符?

[英]Remove special characters in the string in java?

如何刪除字符串中除“ - _”之外的特殊字符。 現在我使用:

replaceAll("[^\\w\\s]", "")

它刪除所有特殊字符,但我想保留“ - _”。 誰能告訴我該怎么辦?

使用replaceAll("[^\\\\w\\\\s\\\\-_]", "");

我所做的是在正則表達式中添加下划線和連字符。 我在連字符之前添加了\\\\因為它也用於指定范圍: az表示a和z之間的所有字母。 \\\\轉義它確保它被視為連字符。

這可能有所幫助:

replaceAll("[^a-zA-Z0-9_-]", "");

我懷疑你需要分配結果(如果你不這樣做),因為replaceAll()返回一個新的字符串,而不是更新字符串(String是不可變的):

str = str.replaceAll("[^\\w\\s-]", "");

另請注意,正則表達式非常簡單:

無需轉義破折號-在字符類中:當在字符類中用作文字時,它必須是第一個或最后一個(否則它表示范圍 ,如az等)。

根本沒有必要提到下划線,因為它已經列出: \\w 包括下划線字符!

String str="owl@134_- abc";
String s=str.replaceAll(" [^a-zA-Z_-]+ ", "");
System.out.println(str);

它將替換給定字符串中的特殊字符和空格。

輸出將是: owlabc_-

使用此replaceAll("[\\\\w\\\\s\\\\-\\\\_\\\\<.*?>]", "") ;

Pattern pt = Pattern.compile("[^a-zA-Z0-9_-]");
    Matcher match = pt.matcher(c);
    while (match.find()) {
        String s = match.group();
        c = c.replaceAll("\\" + s, "");
    }

考慮一下

暫無
暫無

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

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