Windows与Mac上的正则表达式

时间:2015-09-09 00:56:26

标签: java regex macos

我有一个使用Java分割的字符串。它在我的Windows机器上工作得很好,但在我的Mac上没有(使用Eclipse)

我有一个包含单个空格和双空格的文本字符串,如下所示:

 August 05   July 09   May 07   April 01   March 19   February 19   January 15   December 17   December 04   December 03   December 02   November 24   October 30

我正在使用

分裂
String monthAndDay[] = formattedNewsDates.split("\\s\\s");

同样,不确定为什么它在Windows上工作但不在Mac上工作。一个平台是否以不同的方式理解正则表达式?

1 个答案:

答案 0 :(得分:0)

由于您正在使用Eclipse,因此您可以调试代码并查看支持char[]的{​​{1}}。

或者,您可以以十六进制打印字符串。这是一个快速且(非常)脏的六角打印机:

String

输出

String s = " August 05   July 09   May 07   April 01   March 19   February 19   January 15   December 17   December 04   December 03   December 02   November 24   October 30";
for (byte b : s.getBytes("UTF-8"))
    System.out.printf("%02x ", b);
System.out.println();
for (byte b : s.getBytes("UTF-8"))
    System.out.print(b >= 32 ? (char)b + "  " : "?  ");
System.out.println();

如您所见,空格为十六进制20 41 75 67 75 73 74 20 30 35 20 20 20 4a 75 6c 79 20 30 39 20 20 20 4d 61 79 20 30 37 20 20 20 41 70 72 69 6c 20 30 31 20 20 20 4d 61 72 63 68 20 31 39 20 20 20 46 65 62 72 75 61 72 79 20 31 39 20 20 20 4a 61 6e 75 61 72 79 20 31 35 20 20 20 44 65 63 65 6d 62 65 72 20 31 37 20 20 20 44 65 63 65 6d 62 65 72 20 30 34 20 20 20 44 65 63 65 6d 62 65 72 20 30 33 20 20 20 44 65 63 65 6d 62 65 72 20 30 32 20 20 20 4e 6f 76 65 6d 62 65 72 20 32 34 20 20 20 4f 63 74 6f 62 65 72 20 33 30 A u g u s t 0 5 J u l y 0 9 M a y 0 7 A p r i l 0 1 M a r c h 1 9 F e b r u a r y 1 9 J a n u a r y 1 5 D e c e m b e r 1 7 D e c e m b e r 0 4 D e c e m b e r 0 3 D e c e m b e r 0 2 N o v e m b e r 2 4 O c t o b e r 3 0 。十六进制值2000是控制字符,例如1FCR。如果您的字符串具有非ASCII字符,则每个字符打印为2-4个字节,十六进制值为LF或更高。