簡體   English   中英

無法在Java中使用此正則表達式表達式提取字符串

[英]Unable to extract string using this regex expression in java

我有一個字符串,其第一個字符為“ ^”。 我要提取不帶此字符的字符串。 例如:“ ^ coal”應該變成“ coal”。 以下是我編寫的代碼,但我不知道為什么它不起作用。

public void RegEx(String s1){
        System.out.println(s1.substring(0,1));  //to check if i am ok.
        if((s1.substring(0,1)).equals("^")){
            Pattern p = Pattern.compile("^");
            String[] extracted = p.split(s1);
            for(String s: extracted){
                System.out.println(s);
            }
        }
    }

s1 =“ ^煤”。 輸出=“ ^ coal”。

^字符在正則表達式中具有特殊含義,因此您需要對其進行轉義: "\\\\^"

但是,正則表達式並不是實現此目的的最有效方法。 只需使用substring

if (s1.startsWith("^")) {
    s1 = s1.substring(1);
}
System.out.println(s1);

注意:如上所示,您還可以使用startsWith輕松檢查字符串是否以其他字符串開頭。

字符^在正則表達式中有效。 像這樣逃避

Pattern p = Pattern.compile("\\^");

使用indexOf方法。 它簡短而高效

 String s="^coal";
 int l=s.indexOf("^");
 System.out.println(s.substring(l+1));

暫無
暫無

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

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