regex 根据PowerShell中组名后面的字符将组名从一个长字符串过滤为两个数组

ddarikpa  于 2023-08-08  发布在  Shell
关注(0)|答案(1)|浏览(102)

输入是一个Adgroups字符串,看起来像这样:

group1 - add grou_2 - remove group 3 - add group_4-example - add group 5-test - remove

字符串
正如您可能注意到的那样,每个组名后面都有一个空格,然后是- add或- remove。
目标是将- add前面的每个组名安全保存到一个数组中,将- remove前面的每个组名安全保存到另一个数组中。这应该发生在powerHhell脚本中。这样我以后就可以用这些数组来处理组成员关系。
我的问题是,组名也可以包含空格或特殊字符,如-,所以我不能只与他们匹配。
我构建的第一个脚本只有- add字符串作为输入,这样我就可以在每次出现-add时拆分它。我试图弄清楚,如果我也可以以某种方式与分裂在这种情况下,但我不能拿出的东西,工程。
例如,当我在- add之后拆分字符串时,下一个输出如下所示

group1
grou_2 - remove group 3
group_4-example


等等,我真的想不出如何把它处理成有用的东西。
我对正则表达式的想法很简单,比如“(.*)- add”,但输出只是字符串中最后一个- add之前的每个字符。所以我需要告诉他对字符串中的每个组进行过滤。所以我猜要么用“^”作为字符串的开头,要么在“- remove”或“- add”后面。但我真的不知道该怎么做。
我可能应该补充说,字符串可以包含1到20个组。
如果任何人有一个不涉及正则表达式或分裂的想法,我也会非常感激。

q0qdq0h2

q0qdq0h21#

我的模式是(.*?(加|remove)),然后我将不同的值通过管道传输到一个数组中:
第一个月

相关问题