如何使用REGEX打印:|:在分隔符内的每个字符串之后的模式

时间:2015-03-11 06:08:35

标签: java regex

假设我有一个像这样的字符串"[cat]:|:[]:|:[dog]:|:[cow]:|:[]:|:[]:|:[monkey]"。 我可以从上面的字符串中打印[cat][dog][cow][monkey]。 我怎么能打印这样的东西= [cat]:|:[dog]:|:[cow]:|:[monkey]。 请帮忙。

import java.util.regex.*;
public class RegexMain {

        static final String PATTERN = "\\[([^]]+)\\]|\"[^\"]*\"";
        static final Pattern CONTENT = Pattern.compile(PATTERN);

        public static void main(String[] args) {
            String test1 = "[cat] [] [dog] [cow] []  [] [monkey]";
            Matcher match = CONTENT.matcher(test1);
            while(match.find()) {
                if(match.group(1).length() != 0) {
                System.out.print(  match.group().trim());
            }

        }
    }
}

2 个答案:

答案 0 :(得分:1)

我实际上不确定你的字符串是什么(你在解释和代码中使用不同的字符串)。无论如何你可以试试这个:

public static void main(String[] args) {
    String s = "[cat]:|:[]:|:[dog]:|:[cow]:|:[]:|:[]:|:[monkey]";
    System.out.println(s.replaceAll(":\\[\\]:\\|", ""));
}

O / P:

[cat]:|:[dog]:|:[cow]:|:[monkey]

答案 1 :(得分:0)

怎么样

System.out.print(  match.group().trim() + ":|:");