我需要使用具有以下示例配置的正则表达式来解析字符串:
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
答案 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