簡體   English   中英

如何在Java字符串中替換\\后跟字母?

[英]How to replace \ followed by letters in java String?

我需要刪除所有以\\開頭且后跟任何字符的標記。 我創建了這樣的模式:

input.replaceAll("\\[a-zA-Z0-9]*", "");

但它不工作,因為它不會刪除\\rad從字符串5 4\\rad

編輯

public static void main(String[] args)
    {
        String input="Wolf 3 3\4par";
        String replaceAll = input.replaceAll("\\\\[a-zA-Z0-9]*", "");
        System.out.println("replaceAll=" + replaceAll);
    }

謝謝!

\\是特別無論是在字符串字面量正則表達式。 要將實際\\置於正則表達式中,必須對其進行兩次轉義。 您還必須將結果分配到某個地方,這在您所做的問題中還不清楚。 所以:

input = input.replaceAll("\\\\[a-zA-Z0-9]*", "");

完整示例: 實時復制

import java.util.*;

public class Temp {

    public static void main(String[] args) {
        String input = "4 5 \\rad";
        input = input.replaceAll("\\\\[a-zA-Z0-9]*", "");
        System.out.println(input);
    }
}

輸出:

4 5

要在正則表達式中創建\\文字,您需要將\\\\傳遞給正則表達式引擎。 但是要在String中創建\\文字,您還必須對其進行轉義,因此您需要將其寫為"\\\\"

  • \\正則表達式引擎中的文字
  • \\\\正則表達式模式
  • "\\\\\\\\"代表正則表達式模式的字符串

現在,您在正則表達式模式中使用一個\\ ,正則表達式引擎將其視為\\[ ,轉義[使它成為簡單的文字。

試試這個

input.replaceAll("\\\\[a-zA-Z0-9]*", "");

抱歉,我的字串正好是5 4 \\ rad。 確實如何刪除\\ rad? – Volodymyr Levytskyi

嘗試

String k= "5 4\rad";
System.out.println(k.replaceAll("\r\\w*", ""));

輸出量

5 4

暫無
暫無

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

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