我想在某些函数中匹配单个否定字母并替换为“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 ("'", ""));
}
}
任何想法?
答案 0 :(得分:0)
这是正则表达式不是正确工具的情况之一。你需要一个解析器。