问个正则表达式字符串匹配问题.

String str = "[color=red]17-0[/color]_117-0_[color=red]17-0[/color]"
现在想根据17-0匹配红色的2个17-0,不知道怎么写.

[^(A1-A2)_|_(A1-A2)_|_(A1-A2)$] 这样应该能匹配到所有你想要找到的A1-A2然后再一次分离就好了,或者让 Z1_Z2组合这样跟找到的A1-A2替换了。

直接用正则好象不行。你可以等等别人的回答。

[code="java"]
// [1][7-0]{3}会匹配。
String str = "[color=red]17-0[/color]_1[color=red]17-0[/color]_[color=red]17-0[/color]"
[/code]

我的建议是用下划线分成三组,每一组来与正则进行判断

[code="java"]
public class StringTest {

public static void main(String[] args) {

    String str = "17-0_117-0_17-0";
    String[] array = str.split("_");
    for (int i = 0; i < array.length; i++) {
        if (array[i].matches("[1][7\\-0]{3}")) {
            System.out.println(array[i]);
        }
    }
}

}
[/code]

不知道这样行不行。

1.// [1][7-0]{3}会匹配。

2.String str = "[color=red]17-0[/color]_1[color=red]17-0[/color]_[color=red]17-0[/color]"

你看一下,这样合不合你的要求

[code="java"]
String line = "A1-A2_B1-B2_C1-C2_A1-D1_A2-D2";
line = line.replaceAll("A1", "Z1");
line = line.replaceAll("A2", "Z2");
System.out.println(line);
[/code]
如果是指写xx-xx
那就是

[code="java"]
String line = "A1-A2_B1-B2_C1-C2_A1-D1_A2-D2";
line = line.replaceAll("A1-A2", "Z1-Z2");
System.out.println(line);
[/code]