忽略最后 4 个字符的正则表达式替换

Regex Substitution Ignoring Last 4 Characters

我是正则表达式的新手,所以我需要一些表达式方面的帮助。我有一个字符串...

CO999O0XABCD

我需要用数字“0”替换字母“O”的任何实例,但仅在字符串的前 8 个字符中,如下所示...

C099900XABCD

我考虑只做简单的 [O] 并替换为“0”,从统计上看,最后 4 位数字几乎总是字母,但我不想冒险将“O”更改为“ 0" 错误,因此将匹配项隔离到前 8 个字符是目标。这些字符是 OCR 驱动的,所以这是我试图通过不影响最后 4 个字符的替换来克服的通配符。

您能提供的任何帮助都会很有帮助。

谢谢, 布莱恩

如果您不能使用除正则表达式之外的其他东西,那么此模式将适用于 .NET(和 JS)环境,假设每个字符串都在单独一行的开头:

O(?<=^.{0,8})

Demo