对不起这个问题,我仍然是一个REGEX新手。
我使用powershell创建脚本,我需要创建一系列IF THEN语句
我有一个包含以下LDAP查询的数组:
(&(objectCategory=user)(objectClass=user)(PhysicalDeliveryOfficeName=XXXX, XX)(sAMAccountName=%LogonUser%))
(&(objectCategory=user)(objectClass=user)(PhysicalDeliveryOfficeName=XXXX, XX)(sAMAccountName=%LogonUser%))
(&(objectCategory=user)(objectClass=user)(PhysicalDeliveryOfficeName=*XXXXXX*)(sAMAccountName=%LogonUser%))
(&(objectCategory=user)(objectClass=user)(scriptpath=XXXXX*.XXX)(sAMAccountName=%LogonUser%))
使用For循环和REGEX,我希望能够在(和=
之间提取“PhysicalDeliveryOfficeName”和“scriptpath”的所有提及另外在脚本中我希望能够拉出=和之间的所有X.
有两种方法可以做到吗?他们不必在同一个声明中。两个单独的陈述是好的
X代表城市,州,并且在脚本路径的情况下查询文件名。但是,你可以看到城市和州并不总是相同的模式。
提前感谢您的帮助
答案 0 :(得分:0)
这应该有效。
正则表达式:
(scriptpath|PhysicalDeliveryOfficeName)=(.+?)(?=\))
输入:
(&(objectCategory=user)(objectClass=user)(PhysicalDeliveryOfficeName=XXXX, XX)(sAMAccountName=%LogonUser%))
(&(objectCategory=user)(objectClass=user)(PhysicalDeliveryOfficeName=XXXX, XX)(sAMAccountName=%LogonUser%))
(&(objectCategory=user)(objectClass=user)(PhysicalDeliveryOfficeName=*XXXXXX*)(sAMAccountName=%LogonUser%))
(&(objectCategory=user)(objectClass=user)(scriptpath=XXXXX*.XXX)(sAMAccountName=%LogonUser%))
输出:
PhysicalDeliveryOfficeName=XXXX, XX
PhysicalDeliveryOfficeName=XXXX, XX
PhysicalDeliveryOfficeName=*XXXXXX*
scriptpath=XXXXX*.XXX
团体:(首场比赛)
$0 = PhysicalDeliveryOfficeName=XXXX, XX => Full Match
$1 = PhysicalDeliveryOfficeName
$2 = XXXX, XX