簡體   English   中英

Java-將正則表達式固定長度拆分為數組

[英]Java - regular expression fixed length split into array

我之前已經看過一個示例,但是關於如何使用正則表達式將固定長度的數據流拆分為數組的示例卻再也找不到了。 這實際上可行嗎,是這樣嗎,有人有基本的例子嗎?

08/14       1351 XMGYV4      AOUSC             LTC                        .000          .000 VDPJU01PMP 11AUG14:15:17:05.99

我想在不使用子字符串的情況下將每個值存儲到數組中的單獨值中。

在這種情況下的問題是,每一列都沒有固定的字段大小。 因此,需要在枚舉的各個寬度上進行匹配。

    String s = "  08/14       1351 XMGYV4      "
        + "AOUSC             LTC                        .000          .000 "
        + "VDPJU01PMP 11AUG14:15:17:05.99     ";
    Pattern pattern = Pattern.compile("(.{7,7})(.{11,11})(.)(.{12,12})(.{18,18})(.*)");
    Matcher m = pattern.matcher(s);
    if (m.matches()) {
        for (int i = 1; i <= m.groupCount(); ++i) {
            String g = m.group(i);
            System.out.printf("[%d] %s%n", i, g);
        }
    }

這是一組(.{7,7})最小和最大7個字符的列表。

需要與帶有空格字符的正則表達式匹配一次或多次,即“ \\ s”

String input = "  08/14       1351 XMGYV4      AOUSC             LTC                        .000          .000 VDPJU01PMP 11AUG14:15:17:05.99     ";
String[] split = input.split("\\s+");
System.out.println(Arrays.toString(split));

也許考慮Krayo的解決方案String[] array = s.split( "\\\\s+" );

暫無
暫無

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

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