日期:2014-05-20 浏览次数:20753 次
public static void main(String[] args) { String[] lines = { "NOR3 g836(.A (n_18), .B (n_42), .C (n_22), .Q (n_29));", "BUF g837(.A (n_25), .Q (n_21));", "NAND3 g838(.A (n_17), .B (n_20), .C (n_19), .Q (n_25));", "BUF g840(.A (n_17), .Q (n_18));", "NAND2 g843(.A (n_15), .B (n_11), .Q (n_23));", "NOR3 g841(.A (n_14), .B (encoder_in[13]), .C (encoder_in[5]), .Q (n_17));", "BUF g844(.A (n_22), .Q (n_15));", "NAND2 g847(.A (n_13), .B (n_1), .Q (n_14));", "NAND2 g845(.A (n_12), .B (n_8), .Q (n_22));", "NAND2 g846(.A (n_11), .B (n_6), .Q (n_42));", "BUF g848(.A (n_13), .Q (n_10));" }; Pattern pat = Pattern.compile("\\.\\w\\s*\\(([^\\)]*)"); for (String str : lines) { ArrayList<String> lst = new ArrayList<String>(); int pos = str.indexOf(32); String name = str.substring(0, pos); // 取开头的名字 lst.add(name); Matcher m = pat.matcher(str); // 借助正则表达式循环定位:括号中的参数 while (m.find()) { lst.add(m.group(1)); } System.out.println(lst); String[] results = lst.toArray(new String[0]); // 转成你需要的字符串数组 } }