[英]Regex Java String Split by Asterisk
需要幫助。
line.split("*");
我使用這行代碼將一個字符串拆分為一個星號標記。 但是,我的編譯器出錯了。 它說,“無效的正則表達式:懸掛元字符'*'”
如何解決這個問題? 提前致謝。
*
在正則表達式中具有特殊意義。 你必須逃避它。
line.split("\\*");
試試這個語句:
line.split("\\*");
這是因為您使用了“*”,即正則表達式。 如果你想使用這個角色,你需要輸入這樣的東西:
line.split("\\*");
*是正則表達式中的元字符。 它用於匹配 0 個或多個元素。 如果您想將*用作普通字符而不是特殊字符(即跳過其作為元字符的行為),則在它之前添加轉義字符。
例如: String[] split = line.split("\\\\*");
希望這可以幫助。
如下表所示, *
有特殊含義,零次或多次。
貪婪的 | 不情願的 | 所有格 | 意義 |
---|---|---|---|
X? | X?? | X?+ | X,一次或一次都沒有 |
X* | X*? | X*+ | X,零次或多次 |
X+ | X+? | X++ | X,一次或多次 |
X{n} | X{n}? | X{n}+ | X,恰好 n 次 |
X{n,} | X{n,}? | X{n,}+ | X,至少n次 |
X{n,m} | X{n,m}? | X{n,m}+ | X,至少n次但不超過m次 |
因此,您需要使用\
對其進行轉義。 但是, \
也是一個特殊字符,因此您需要添加一個額外的\
來轉義\
。 因此,所需的模式變為\\*
。
String[] arr = line.split("\\*");
System.out.println(java.util.Arrays.toString(arr));
用這個
" String data="瑪尼*庫姆";
String []value= data.split("\\*");
" 輸出將是這樣的:
value[0]= "Mani";
value[1]= "Kum";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.