Я хотел бы сопоставить одинарные отрицательные буквы в некоторой функции и заменить на "NANAD-neg_letters". одна отрицательная буква означает, что эта буква единственная между ++
Примеры:
F=**A**'+**B**' => NAND-**A**+ **B**
F=**A**'+**B**'+A'B' => A'B'+NAND-**A**+ **B**
F=**A**'+**B**'+A'B =>A'B+NAND-**A**+ **B**
F=*A*'+B+*C*'=>B+NAND-**A**+ **C**
F=AB+*A*'+B+*C*'+D+ABC=>AB+B+D+ABC+NAND-**A**+ **C**
Я написал следующий тест на Java, но он работает только для первого примера:
public class Test {
public static void main (String[] args) {
String test="A'+K+D'";
System.out.println (test.replaceAll ("([A-Z])'\\+([A-Z])'([\\+[A-Z]'])?([\\+[A-Z]'])?", "NAND-$1\\+$2$3$4") .replace ("'", ""));
}
}
Есть идеи?