[英]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.