regex 查找字符串中出现的所有正则表达式模式

xdnvmnnf  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(153)

下面的代码:

var varFormula = "IIF(ABCCF012HIZ3000=0,0,ABCCF012HCZ3000/ABCCF012HIZ3000)"
MatchCollection match = Regex.Matches(varFormula, @"^AB([CC|DD|EE]+[F|G])[0-9]{3}(HI|IC|HC)Z[A-Z0-9]{4}$", RegexOptions.IgnoreCase);

从上面的例子中,我想从varFormula中提取以下内容,但我无法获得任何匹配项/组:

ABCCF012HCZ3000
ABCCF012HIZ3000
iibxawm4

iibxawm41#

你的正则表达式使用^和$来指定一行的开始和结束。所以它永远不会匹配varFormula。尝试下面的方法:

var varFormula = @"IIF(ABCCF012HIZ3000=0,0,ABCCF012HCZ3000/ABCCF012HIZ3000)";
MatchCollection match = Regex.Matches(varFormula, @"AB(?:[CC|DD|EE]+[F|G])[0-9]{3}(?:HI|IC|HC)Z[A-Z0-9]{4}", RegexOptions.IgnoreCase)

应该给予三个匹配项:

Match 1 ABCCF012HIZ3000
Match 2 ABCCF012HCZ3000
Match 3 ABCCF012HIZ3000

相关问题