如何使用数字和字母创建字符串搜索?

时间:2014-07-01 16:57:08

标签: powershell powershell-v2.0 powershell-v3.0

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

我如何在两者之间进行搜索,但只获取CC37000,而只使用前三个字符?

2 个答案:

答案 0 :(得分:2)

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

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

或者

$str -match '^[a-z]{2}\d'

答案 1 :(得分:1)

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

PS C:\> $s = 'CC37000', 'CCL370191'
PS C:\> $s
CC37000
CCL370191
PS C:\> $s -match '^[a-z]{2}[^a-z]'
CC37000

正则表达式细分:

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