用于在保留空格的同时拆分String的正则表达式

时间:2014-10-20 14:37:26

标签: java android regex

我正在做一个Android项目,需要将分割为标记,同时保留空格,而不是像#&等非字字符分割...

在任何非单词字符处使用\b拆分。所以我需要一种方法来按以下方式拆分字符串。

输入:(.表示空格)

A.A#..A## 

期望的输出:

A
.
A#
..
A##

所以这5行是我想要的数组或类似的5个值。这意味着result-array的第4个元素包含2个空格。

3 个答案:

答案 0 :(得分:2)

我认为这就是你想要的:

(?<=\S)(?=\s)|(?<=\s)(?=\S)

Regular expression visualization

Debuggex Demo

基本上我说“如果前一个字符是非空格而下一个是空格如果前一个是空格而下一个是非空格,那么拆分”

答案 1 :(得分:1)

使用StringTokenizer:

StringTokenizer st = new StringTokenizer("A.A#..A##", ".");//first argument is string you want to split, another is whitespace

while(st.hasMoreTokens())
  System.out.println(st.nextToken());

输出将是:     一个     一个#     甲##

答案 2 :(得分:0)

尝试:

String s = "A.A#..A##"; if(s.contains("..")) | s.contains("...")) { s.replace("..", "."); s.replace("...", "."); String out[] = s.split(".");

它应该以你想要的方式给你一个带字符串的数组:)

不要忘记更换“。”与实际空间:)