Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 - Fatal编程技术网

如何使用正则表达式在java中拆分前导空格的确切数目?

如何使用正则表达式在java中拆分前导空格的确切数目?,java,regex,Java,Regex,我正在编写一个dxf文件解析器,我想使用String.split()将文件(表示为字符串)拆分为各个dxf实体。新的dxf实体由两个前导空格和0区分。然而,不幸的是,某些实体(如多行文字)还有一些其他属性,其中一个属性由四个前导空格和一个零来区分。我想使用split,但我不想使用regex区分这两种情况。简单拆分(“\s\s0”)或拆分(\s{2,2}0)仍然允许使用四个空格。如何使用正则表达式指定要拆分两个前导空格,不少于,不多于。如果空格字符跟在单词字符后面,可以使用单词边界锚定符\b,如下

我正在编写一个dxf文件解析器,我想使用String.split()将文件(表示为字符串)拆分为各个dxf实体。新的dxf实体由两个前导空格和0区分。然而,不幸的是,某些实体(如多行文字)还有一些其他属性,其中一个属性由四个前导空格和一个零来区分。我想使用split,但我不想使用regex区分这两种情况。简单拆分(“\s\s0”)或拆分(\s{2,2}0)仍然允许使用四个空格。如何使用正则表达式指定要拆分两个前导空格,不少于,不多于。

如果空格字符跟在单词字符后面,可以使用单词边界锚定符
\b
,如下所示:

String[] tokens = text.split("\\b\\s{2,2}0");
您还可以使用-即使空白前的字符是非单词字符,它也可以工作:

String[] tokens = text.split("(?<!\\s)\\s{2,2}0");

<代码>字符串[]tokuns=文本.Seple((实际上,我不认为完全希望我预期)。考虑字符串“0 \nString \n 0 \n”。我想调用分割函数,在0之前分割成两个空白。因此,在调用分割之后,要检索的令牌是{“\”\\Netrn\n 0 }。,两个元素。但是,我们运行它时,我得到了{“”,“\n连续的\n”,“\n”},三个元素。顺便说一句,在上面的字符串中,第一个0之前应该有两个空格,第二个0之前应该有四个空格。很抱歉格式错误。