我有这个逻辑编程软件,可以将结果输出为以下形式的文本文件:
[-a(b), +i(c), +i(d)]
[-a(f(g(a))), -a(f(a,b)), -a(f(c)), -a(f(d)), -a(b)]
...
它可以扩展到数百或数千行。
我只是希望能够通过删除包含括号内的括号(换句话说,谓词内的函数)的行来缩小这个数字,就像-a(f(g(a)))
和-a(f(c))
......并保留所有其他行。
任何人都可以指导我,也许可以为我提供一个简单的例子,说明如何以最简单的方式实现这一点,一点也不花哨,可能是在 VBScript 或 Batch 中(是的,我在 Windows 上),它读取文本文件的内容和删除未分配的行。
编辑:vbs 工作示例
Dim re, targetString
Set re = New RegExp
With re
.Pattern = "\([^()]*\("
.Global = False
.IgnoreCase = False
End With
targetString = "[-a(f(g(a))), -a(f(a,b)), -a(f(c)), -a(f(d)), -a(b)]"
if re.Test(targetString) <> True Then
MsgBox "valid",0,"test"
else
MsgBox "invalid",0,"test"
end if