使用正则表达式分别分组一些数字

时间:2015-04-07 23:19:12

标签: java regex

我需要使用具有以下示例配置的正则表达式来解析字符串:

A1B135
W43T1236

我需要在字符串末尾的那些数字的不同组中使用数字。

所以对于A1B135:

group A
group 1
group B
group 1
group 3
group 5

但两个字母之间的数字必须出现在一个组中

因此对于W43T1236:

group W
group 43
group T
group 1
group 2
group 3
group 6

1 个答案:

答案 0 :(得分:2)

我认为你需要一个前瞻(?= stuffThatShouldFollow)。

public class Tester {

    public static void main(String[] args) {
        // String to be scanned to find the pattern.
        String line = "W43T1236";
        String pattern = "([A-Z]|[0-9]+(?=.*[A-Z])|[0-9])";

        // Create a Pattern object
        Pattern r = Pattern.compile(pattern);

        // Now create matcher object.
        Matcher m = r.matcher(line);

        while (m.find()) {
            System.out.println(m.group(1));
        }
    }

}

输出:

W
43
T
1
2
3
6