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