【发布时间】:2019-03-06 06:15:23
【问题描述】:
我正在尝试使用 PowerShell 中的正则表达式匹配一些字符串,但由于我从中提取的原始字符串的格式不同,遇到了困难。诚然,我不擅长创建正则表达式。
我需要从每个字符串中提取数字。它们的长度可能会有所不同,但在这两种情况下都将在前面加上Foo
PC1-FOO1234567
PC2-FOO1234567/FOO98765
这适用于第二个示例:
'PC2-FOO1234567/FOO98765' -match 'FOO(.*?)\/FOO(.*?)\z'
它让我可以使用$matches[1] 和$matches[2] 访问匹配的字符串,这很棒。
这显然不适用于第一个示例。我怀疑我需要一些方法来匹配/ 或字符串的结尾,但我不确定如何做到这一点并最终得到我想要的匹配。
建议?
【问题讨论】:
-
使用
'FOO(.*?)(?:/FOO(.*))?$' -
顺便说一句:只有在将
/.../用于正则表达式文字的语言中,您需要将/转义为\/(PowerShell 不是其中之一)。
标签: regex powershell