让正则表达式语句接受两个表达式时遇到问题。
这里的“re.pattern”代码有效:
If UserChoice = "" Then WScript.Quit 'Detect Cancel
re.Pattern = "[^(a-z)^(0,4,5,6,7,8,9)]"
re.Global = True
re.IgnoreCase = True
if re.test( UserChoice ) then
Exit Do
End if
MsgBox "Please choose either 1, 2 or 3 ", 48, "Invalid Entry"
而下面的“regex.pattern”代码没有。我想用它来格式化收集组的 DSQUERY 命令的结果,但我不想要“,”之后的任何信息,也不想要通常在以下 dsquery 时收集的前导 CN=运行: “dsquery.exe 用户 forestroot -samid “& strInput &”|dsget user -memberof”)
我要格式化的字符串在格式化之前看起来像这样:
CN=APP_GROUP_123,OU=全球组,OU=帐户,DC=corp,DC=contoso,DC=biz
这是我想要的结果:
APP_GROUP_123
Set regEx = New RegExp
**regEx.Pattern = "[,.*]["CN=]"**
Result = regEx.Replace(StrLine, "")
我只能在单独使用时让正则表达式工作,要么
regEx.Pattern = ",."
或者
regEx.Pattern = "CN="
代码嵌套在这里:
Set InputFile = FSO.OpenTextFile("Temp.txt", 1)
Set InputFile = FSO.OpenTextFile("Temp.txt", 1)
set OutPutFile = FSO.OpenTextFile(StrInput & "-Results.txt", 8, True)
do While InputFile.AtEndOfStream = False
StrLine = InputFile.ReadLine
If inStr(strLine, TaskChoice) then
Set regEx = New RegExp
regEx.Pattern = "[A-Za-z]{2}=(.+?),.*"
Result = regEx.Replace(StrLine, "")
OutputFile.write(Replace(Result,"""","")) & vbCrLf
End if