我想刪除第一個數字序列結束後的所有字符。刪除特定序列後的所有字符
編輯:(對不起,不確定性)
- 字符串可能會或可能不會與字母開頭,但如果它開始 字母應予以保留。
第一個數字序列後,應刪除所有內容。
例如QWEE1232RTY - > QWE1232
123RTY - > 123
12342 - > 12342
str.replaceAll("[^A-Z][^0-9]+","");
這應該工作,但它給人意想不到的輸出,而不是打印重複 「2」。
My ideone code for the attempt and it's respective outputs
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
String str = "BCTC27452ASDFCCC";
System.out.println(str.replaceAll("[^A-Z0-9]",""));
// BCTC27452ASDFCCC
System.out.println(str.replaceAll("[^A-Z0-9]$",""));
// BCTC27452ASDFCCC
System.out.println(str.replaceAll("[^A-Z][^0-9]",""));
// BCTC2745SDFCCC
System.out.println(str.replaceAll("[^A-Z][^0-9]+",""));
// Closest Output - "BCTC2745" (why 2nd "2" not printed)
System.out.println(str.replaceAll("[^A-Z][^0-9]*",""));
// BCTC
System.out.println(str.replaceAll("[^A-Z][^0-9+]",""));
// BCTC2745SDFCCC
System.out.println(str.replaceAll("[^A-Z][^0-9*]",""));
// BCTC2745SDFCCC
System.out.println("Expected Output: BTC27452");
}
}
爲什麼不提取['^ [AZ] {4} [0-9] {5}'](https://regex101.com/r/aE5cN9/2) – Tushar
你的問題是爲什麼'2'是去掉?你能澄清規則嗎? –
@Tushar字母數量不固定。 – sian