提取方括号外的字符串
Extract strings outside square brackets
如果我有这样的 BNF 代码
[A] ::= [A]B | C | [D]
[D] ::= C[D] | C
如何提取不在方括号内的字母。我试过这个
for(int i=0;i<lineNumber;i++)
{
String Data[]=data[i].split("::=");
Nonter.add(Data[0]);
ter.add(Data[1]);
NterSay++;
}
String[] splitted = ter.get(0).split("\[|\]|\|");
for (String split: splitted) {
System.out.println(split);
}
但是它打印了所有字母。
试试这个:
String[] data = new String[]{"[A] ::= [A]B | C | [D]", "[D] ::= C[D] | C"};
List<String> nonter = new ArrayList<>();
List<String> ter = new ArrayList<>();
for (String aData : data) {
String Data[] = aData.split("::=");
nonter.add(Data[0]);
ter.add(Data[1]);
}
String replaced = ter.get(0).replaceAll("\[\w]|\s|\|", "");
for (char ch : replaced.toCharArray()) {
System.out.println(ch);
}
如果我有这样的 BNF 代码
[A] ::= [A]B | C | [D]
[D] ::= C[D] | C
如何提取不在方括号内的字母。我试过这个
for(int i=0;i<lineNumber;i++)
{
String Data[]=data[i].split("::=");
Nonter.add(Data[0]);
ter.add(Data[1]);
NterSay++;
}
String[] splitted = ter.get(0).split("\[|\]|\|");
for (String split: splitted) {
System.out.println(split);
}
但是它打印了所有字母。
试试这个:
String[] data = new String[]{"[A] ::= [A]B | C | [D]", "[D] ::= C[D] | C"};
List<String> nonter = new ArrayList<>();
List<String> ter = new ArrayList<>();
for (String aData : data) {
String Data[] = aData.split("::=");
nonter.add(Data[0]);
ter.add(Data[1]);
}
String replaced = ter.get(0).replaceAll("\[\w]|\s|\|", "");
for (char ch : replaced.toCharArray()) {
System.out.println(ch);
}