我想使用Powershell搜索所有以“ jamec”开头的全称samaccountname(全名的缩写形式,例如“ Jame Cameron”),并以数字结尾,但不包括其他缩写形式,例如“ jamech”
“ jamec”-匹配 “ jamec1234”-匹配 “ jamec12”-匹配
“ jamech”-不匹配 “ jamech12”-不匹配
尝试了这个“ ^ jamec(\ d +)(?!。* \ d)”,但没有数字“ jamec”的字符串变得不匹配。
答案 0 :(得分:3)
尝试使用:
^jamec\d*$
这与jamec
相匹配,并可选地仅跟一个或多个数字。如果您还想匹配输入中的其他内容,请改用^jamec\d*\b
。
如果要确保可选数字的第一位数字不以零开头,请使用:
^jamec(?:[1-9][0-9]*)?$
答案 1 :(得分:3)
您尝试过的模式^jamec(\d+)(?!.*\d)
要求jamec后面至少要有1位数字。
否定的前瞻(?!.*\d)
断言,在右边的所有字符中都没有数字。
您可以使用单词边界\b
,并使用*
而不是+
将数字匹配0次以上
^jamec\d*\b
要在数字后不进行任何匹配,您还可以声明空白边界
^jamec\d*(?!\S)