Powershell 如何创建带有数字和字母的字符串搜索?

Powershell 如何创建带有数字和字母的字符串搜索?,powershell,powershell-2.0,powershell-3.0,Powershell,Powershell 2.0,Powershell 3.0,我试图找出如何创建一个包含字母和数字的搜索字符串。例如CC37000和CCL3700191 如何在仅使用前三个字符的情况下,在这两个字符之间进行搜索,但仅获取CC37000?使用a仅匹配仅以两个字母开头的字符串: PS C:\> $s = 'CC37000', 'CCL370191' PS C:\> $s CC37000 CCL370191 PS C:\> $s -match '^[a-z]{2}[^a-z]' CC37000 PS C:\>$s='CC37000','CCL3700191' 私

我试图找出如何创建一个包含字母和数字的搜索字符串。例如CC37000和CCL3700191

如何在仅使用前三个字符的情况下,在这两个字符之间进行搜索,但仅获取CC37000?

使用a仅匹配仅以两个字母开头的字符串:

PS C:\> $s = 'CC37000', 'CCL370191'
PS C:\> $s
CC37000
CCL370191
PS C:\> $s -match '^[a-z]{2}[^a-z]'
CC37000
PS C:\>$s='CC37000','CCL3700191'
私人秘书长:\>$s
CC37000
CCL3700191
PS C:\>$s-匹配“^[a-z]{2}[^a-z]”
CC37000
正则表达式细分:

  • ^
    匹配字符串的开头
  • [a-z]
    是仅匹配字母的字符类。PowerShell比较默认不区分大小写,因此您不必使用
    [a-zA-Z]
    来匹配大写字母(除非您使用
    -cmatch
    运算符)
  • {2}
    与前面的表达式精确匹配2次
  • [^a-z]
    是另一个字符类,但开头的插入符号颠倒了其含义,因此它匹配除字母以外的任何字符
使用a仅匹配仅以两个字母开头的字符串:

PS C:\> $s = 'CC37000', 'CCL370191'
PS C:\> $s
CC37000
CCL370191
PS C:\> $s -match '^[a-z]{2}[^a-z]'
CC37000
PS C:\>$s='CC37000','CCL3700191'
私人秘书长:\>$s
CC37000
CCL3700191
PS C:\>$s-匹配“^[a-z]{2}[^a-z]”
CC37000
正则表达式细分:

  • ^
    匹配字符串的开头
  • [a-z]
    是仅匹配字母的字符类。PowerShell比较默认不区分大小写,因此您不必使用
    [a-zA-Z]
    来匹配大写字母(除非您使用
    -cmatch
    运算符)
  • {2}
    与前面的表达式精确匹配2次
  • [^a-z]
    是另一个字符类,但开头的插入符号颠倒了其含义,因此它匹配除字母以外的任何字符
使用a仅匹配仅以两个字母开头的字符串:

PS C:\> $s = 'CC37000', 'CCL370191'
PS C:\> $s
CC37000
CCL370191
PS C:\> $s -match '^[a-z]{2}[^a-z]'
CC37000
PS C:\>$s='CC37000','CCL3700191'
私人秘书长:\>$s
CC37000
CCL3700191
PS C:\>$s-匹配“^[a-z]{2}[^a-z]”
CC37000
正则表达式细分:

  • ^
    匹配字符串的开头
  • [a-z]
    是仅匹配字母的字符类。PowerShell比较默认不区分大小写,因此您不必使用
    [a-zA-Z]
    来匹配大写字母(除非您使用
    -cmatch
    运算符)
  • {2}
    与前面的表达式精确匹配2次
  • [^a-z]
    是另一个字符类,但开头的插入符号颠倒了其含义,因此它匹配除字母以外的任何字符
使用a仅匹配仅以两个字母开头的字符串:

PS C:\> $s = 'CC37000', 'CCL370191'
PS C:\> $s
CC37000
CCL370191
PS C:\> $s -match '^[a-z]{2}[^a-z]'
CC37000
PS C:\>$s='CC37000','CCL3700191'
私人秘书长:\>$s
CC37000
CCL3700191
PS C:\>$s-匹配“^[a-z]{2}[^a-z]”
CC37000
正则表达式细分:

  • ^
    匹配字符串的开头
  • [a-z]
    是仅匹配字母的字符类。PowerShell比较默认不区分大小写,因此您不必使用
    [a-zA-Z]
    来匹配大写字母(除非您使用
    -cmatch
    运算符)
  • {2}
    与前面的表达式精确匹配2次
  • [^a-z]
    是另一个字符类,但开头的插入符号颠倒了其含义,因此它匹配除字母以外的任何字符

抱歉,由于我没有足够的声誉,无法添加评论。 @Ansgar Wiechers:你说得对,但他想得到的是CC37000,而不是CCL370191。正则表达式应类似于:

PS C:\Windows\system32> $str = 'CC37000', 'CCL370191'
PS C:\Windows\system32> $str -match '^CC3'`
CC37000


抱歉,无法添加评论,因为我没有足够的声誉。 @Ansgar Wiechers:你说得对,但他想得到的是CC37000,而不是CCL370191。正则表达式应类似于:

PS C:\Windows\system32> $str = 'CC37000', 'CCL370191'
PS C:\Windows\system32> $str -match '^CC3'`
CC37000


抱歉,无法添加评论,因为我没有足够的声誉。 @Ansgar Wiechers:你说得对,但他想得到的是CC37000,而不是CCL370191。正则表达式应类似于:

PS C:\Windows\system32> $str = 'CC37000', 'CCL370191'
PS C:\Windows\system32> $str -match '^CC3'`
CC37000


抱歉,无法添加评论,因为我没有足够的声誉。 @Ansgar Wiechers:你说得对,但他想得到的是CC37000,而不是CCL370191。正则表达式应类似于:

PS C:\Windows\system32> $str = 'CC37000', 'CCL370191'
PS C:\Windows\system32> $str -match '^CC3'`
CC37000


欢迎来到堆栈溢出!你的问题可能会吸引更多的注意和帮助,如果你包括你尝试过的例子或你参考过的文档。此外,您还包括了v2.0和v3.0标记-请澄清您使用的是哪个版本,或者您是否明确需要跨版本兼容的脚本。欢迎使用堆栈溢出!你的问题可能会吸引更多的注意和帮助,如果你包括你尝试过的例子或你参考过的文档。此外,您还包括了v2.0和v3.0标记-请澄清您使用的是哪个版本,或者您是否明确需要跨版本兼容的脚本。欢迎使用堆栈溢出!你的问题可能会吸引更多的注意和帮助,如果你包括你尝试过的例子或你参考过的文档。此外,您还包括了v2.0和v3.0标记-请澄清您使用的是哪个版本,或者您是否明确需要跨版本兼容的脚本。欢迎使用堆栈溢出!你的问题可能会吸引更多的注意和帮助,如果你包括你尝试过的例子或你参考过的文档。此外,您还包括了v2.0和v3.0标记-请澄清您使用的是哪个版本,或者如果您明确需要跨版本兼容的脚本。