Regex 针对奇数值的正则表达式
我正在通过csv进行解析,以便通过powershell导出为两类:匹配和非匹配 csv中的数据格式如下所示: SamAccountName xx9999xx aa0000aa ab0909xc etcRegex 针对奇数值的正则表达式,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}] 或 两者似乎都会输出不正确的随机内容。 我想(真的希
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我的想法很接近!谢谢你,诺布:)所以我的想法有点接近!谢谢你,诺布:)