Regex 针对奇数值的正则表达式

Regex 针对奇数值的正则表达式,regex,csv,powershell,Regex,Csv,Powershell,我正在通过csv进行解析,以便通过powershell导出为两类:匹配和非匹配 csv中的数据格式如下所示: SamAccountName xx9999xx aa0000aa ab0909xc etc a-z #For the first set of letters 0-9 #For the 4 digits a-z #For the second set of letters ie [a-z{2}]+[0-9{4}]+[a-z{2}] 或 两者似乎都会输出不正确的随机内容。 我想(真的希

我正在通过csv进行解析,以便通过powershell导出为两类:匹配和非匹配

csv中的数据格式如下所示:

SamAccountName xx9999xx aa0000aa ab0909xc etc
a-z #For the first set of letters
0-9 #For the 4 digits
a-z #For the second set of letters

ie [a-z{2}]+[0-9{4}]+[a-z{2}]

两者似乎都会输出不正确的随机内容。 我想(真的希望)有一种方法可以通过以下方式匹配:

SamAccountName xx9999xx aa0000aa ab0909xc etc
a-z #For the first set of letters
0-9 #For the 4 digits
a-z #For the second set of letters

ie [a-z{2}]+[0-9{4}]+[a-z{2}]
我可以运行一个正常的
'xx999xx'-匹配'[a-z]+[a-z]+[0-9]+[0-9]+[0-9]+[a-z]+[a-z]+[a-z]'
,它返回true,然后

PS C:\Windows> $Matches

Name                           Value                                                                                                                                                                                                  
----                           -----                                                                                                                                                                                                  
0                              xx9999xx  

但我仍然不明白如何大规模地做到这一点

符合您的约定的正确正则表达式应如下所示

正则表达式:
[a-z]{2}[0-9]{4}[a-z]{2}


符合您的约定的正确正则表达式应如下所示

正则表达式:
[a-z]{2}[0-9]{4}[a-z]{2}

有一个正确的正则表达式来匹配您的问题。要理解为什么您的匹配比您预期的要多,是因为加号是正则表达式中的量词元字符。这意味着

在一次和无限次之间,尽可能多次,根据需要给予回报

所以,如果你有两个以上的数字,它会尝试匹配更多。所以这是一个有效的匹配

aaaa00000000000aaaa
使用固定的量词
{2}
{4}
等将与您想要的完全匹配

是快速测试的重要资源。它还为您的正则表达式提供了很好的解释。

有一个正确的正则表达式来匹配您的问题。要理解为什么您的匹配比您预期的要多,是因为加号是正则表达式中的量词元字符。这意味着

在一次和无限次之间,尽可能多次,根据需要给予回报

所以,如果你有两个以上的数字,它会尝试匹配更多。所以这是一个有效的匹配

aaaa00000000000aaaa
使用固定的量词
{2}
{4}
等将与您想要的完全匹配


是快速测试的重要资源。它还很好地解释了您的正则表达式。

您能提供示例输入和输出吗?每行输入是否有多个aa0000aa?@Arluin-否是唯一的值,因此只有一个aa0000aa实例,下一个值将是aa0000ab,等等。您可以提供示例输入和输出吗?每行输入是否有多个aa0000aa?@Arluin-否这是唯一的值,因此只有一个aa0000aa实例,下一个值将是aa0000ab,等等。啊,我明白了。Regex101是一个很好的工具。我猜Php和powershell在处理正则表达式的方式上是相似的?谢谢你,玛塔,我明白了。Regex101是一个很好的工具。我猜Php和powershell在处理正则表达式的方式上是相似的?谢谢你,MattSo我的想法很接近!谢谢你,诺布:)所以我的想法有点接近!谢谢你,诺布:)