這是一個示例文本:\1f\1e\1d\020028
。我無法修改輸入文本,我正在從文件中讀取長串文本。Java模式/匹配器
我想提取以下內容:\1f
,\1e
,\1d
,\02
對於這一點,我寫了下面的正則表達式模式:"\\[a-fA-F0-9]"
我使用Pattern
和Matcher
類,但我的匹配器無法使用所提到的正則表達式來查找模式。我已經在一些在線正則表達式網站上測試了這個正則表達式,並且令人驚訝的是它在那裏工作。
我哪裏錯了?
原始代碼:
public static void main(String[] args) {
String inputText = "\1f\1e\1d\02002868BF03030000000000000000S023\1f\1e\1d\03\0d";
inputText = inputText.replace("\\", "\\\\");
String regex = "\\\\[a-fA-F0-9]{2}";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(inputText);
while (m.find()) {
System.out.println(m.group());
}
}
輸出:什麼也沒有打印
我猜你的一些反斜槓正在逃避你不想要的東西。不過,你必須向我們展示你的實際代碼。 – azurefrog 2014-11-05 22:03:12
'\\ [a-fA-F0-9]'尋找反斜槓後跟一個字母或數字。我想你想尋找反斜槓後面跟兩個字母或數字。我懷疑你可以弄清楚如何解決這個問題。 – ajb 2014-11-05 22:03:50
您是否正確輸入字符串的格式?應該是'\\ 1f \\ 1e \\ 1d \\ 020028'我認爲。 – kaos 2014-11-05 22:04:13