Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正则表达式拆分_Java_Regex_Split - Fatal编程技术网

Java正则表达式拆分

Java正则表达式拆分,java,regex,split,Java,Regex,Split,我有一些如下格式的数据 2009.07.02 02:20:14 40.3727 28.2330 6.4 2.6 -.- -.- BANDIRMA-BALIKESIR 2009.07.02 01:38:34 38.3353 38.8157 3.5 2.7 -.- -.- KALE (MALATYA) 2009.07.02 00:10:28 38.8838 26.9328 3.0 3.0 -.

我有一些如下格式的数据

2009.07.02 02:20:14 40.3727 28.2330 6.4 2.6 -.- -.- BANDIRMA-BALIKESIR 2009.07.02 01:38:34 38.3353 38.8157 3.5 2.7 -.- -.- KALE (MALATYA) 2009.07.02 00:10:28 38.8838 26.9328 3.0 3.0 -.- -.- CANDARLI KÖRFEZI (EGE DENIZI) 2009.07.01 23:33:31 36.8027 34.0975 8.2 2.9 -.- -.- GÜZELOLUK-ERDEMLI (MERSIN) 2009.07.01 22:32:44 38.9260 27.0338 5.0 3.4 -.- -.- CANDARLI KÖRFEZI (EGE DENIZI) 2009.07.01 22:12:37 40.2120 41.0378 3.7 2.9 -.- -.- OVACIK-ILICA (ERZURUM) 2009.07.01 22:10:53 38.9208 26.9502 5.0 3.5 -.- -.- ÇANDARLI-DIKILI (IZMIR) 2009.07.01 21:44:29 38.8695 27.1268 6.9 2.9 -.- -.- YUNTDAG-BERGAMA (IZMIR) 2009.07.01 21:27:53 38.9073 26.9895 5.0 3.0 -.- -.- CANDARLI KÖRFEZI (EGE DENIZI) 2009.07.01 21:18:19 38.9212 26.9060 5.0 3.4 -.- -.- CANDARLI KÖRFEZI (EGE DENIZI) 2009.07.01 21:12:15 38.8657 26.9447 13.7 3.8 -.- -.- CANDARLI KÖRFEZI (EGE DENIZI) 2009.07.01 21:09:43 38.9260 27.0853 5.0 3.1 -.- -.- ZEYTINDAG-BERGAMA (IZMIR) 2009.07.01 21:05:40 38.9153 26.9710 5.0 3.4 -.- -.- ÇANDARLI-DIKILI (IZMIR) 2009.07.01 20:29:02 37.6888 38.7212 5.0 3.3 -.- -.- AKINCILAR-KAHTA (ADIYAMAN) 2009.07.01 18:17:12 41.2700 36.0502 2.7 2.7 -.- -.- TAFLAN- (SAMSUN) 2009.07.01 17:50:03 38.6312 35.7962 5.0 2.8 -.- -.- ELBASI-BÜNYAN (KAYSERI) 2009.07.02 02:20:14 40.3727 28.2330 6.4 2.6-.-.-.-班迪尔马-巴里凯西 2009.07.02 01:38:34 38.3353 38.8157 3.5 2.7-.-.-.-甘蓝(马拉蒂亚) 2009.07.02 00:10:28 38.8838 26.9328 3.0 3.0-.-.-.-坎达利·科菲齐(埃格·德尼齐) 2009.07.01 23:33:31 36.8027 34.0975 8.2 2.9-.-.-GÜZELOLUK-ERDEMLI(梅尔辛) 2009.07.01 22:32:44 38.9260 27.0338 5.0 3.4-.-.-.-坎达利·科菲齐(埃格·德尼齐) 2009.07.01 22:12:37 40.2120 41.0378 3.7 2.9-.-.-.-奥瓦西克-伊丽卡(埃尔祖鲁姆) 2009.07.01 22:10:53 38.9208 26.9502 5.0 3.5-.-.-.-圣安德利-迪基利(伊兹密尔) 2009.07.01 21:44:29 38.8695 27.1268 6.9 2.9-.-.-.-尤特达格-贝尔加马(伊兹密尔) 2009.07.01 21:27:53 38.9073 26.9895 5.03.0-.-.-.-坎达利·科菲齐(埃格·德尼齐) 2009.07.01 21:18:19 38.9212 26.9060 5.0 3.4-.-.-坎达利·科菲齐(埃格·德尼齐) 2009.07.01 21:12:15 38.8657 26.9447 13.7 3.8-.-.-坎达利·科菲齐(埃格·德尼齐) 2009.07.01 21:09:43 38.9260 27.0853 5.0 3.1-.-.-.-泽廷达格-贝加马(伊兹密尔) 2009.07.01 21:05:40 38.9153 26.9710 5.0 3.4-.-.-圣安德利-迪基利(伊兹密尔) 2009.07.01 20:29:02 37.6888 38.7212 5.0 3.3-.-.-.-阿金西尔-卡塔(阿迪亚曼) 2009.07.01 18:17:12 41.2700 36.0502 2.7 2.7-.-.-.-塔夫兰-(萨姆桑) 2009.07.01 17:50:03 38.6312 35.7962 5.0 2.8-.-.-厄尔巴西-比昂(凯泽里)
我想在白线上拆分,但我想在有括号时不要拆分最后一列?我想把每一行分成8块。这可能吗?

将其放入正则表达式工具中,例如

但出于您的目的,可以很容易地在
\s+
\s\s+
上进行拆分并设置。这取决于您想要文本的哪一部分,这就是为什么您使用该工具来帮助您编写正则表达式


如果您特别希望避免在“(”之前匹配空格,但实际上这并不能解决您的问题,因为可能会出现“Words(word)”这样的行,您可以使用组。例如
\s+(?!\()

为什么在这里使用正则表达式

数据文件完全对齐,您可以使用

line.substring(0,12)
line.substring(13,20)
..
..

这样做要快得多。

这看起来像是格式化文本。第一个猜测是在制表符上中断

String[] parts = line.split('\t');
如果这不起作用,我会打断后面没有paren的空格。请在javadoc中的模式下查找先行模式语法: e、 如果你分开

"ABC DEF (GHI)" 
关于正则表达式:

String regex="\\ (?!\\()";
(将其理解为“space(?!X)”,其中“(!X)表示”负前瞻匹配“X”,而转义的openparen“\(”被替换)

你得到“ABC,DEF(GHI)”


假设文本以制表符分隔,则按数字位置进行解析将不起作用。

我想您需要9个字符,而不是8个字符。因此,请尝试,
line.split(\\s+”,9);

如果文本以制表符分隔,只需使用string.split(\t”)这不起作用。如果使用\s+进行拆分,并且限制为8,则最后一个--和名称字段将合并,这是假设您正在对每一行执行拆分。如果您不介意将时间戳拆分为两部分,则限制为9的拆分将起作用。他特别指出:“我想把每一行分成8段”很明显,我没有发现时间戳之间有一个空格。你可以把每一行和.split(@“\s\s+”,8)分开