【问题标题】:Regex Substitution Ignoring Last 4 Characters忽略最后 4 个字符的正则表达式替换
【发布时间】:2020-12-21 19:51:29
【问题描述】:

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

CO999O0XABCD

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

C099900XABCD

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

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

谢谢, 布莱恩

【问题讨论】:

  • 请分享您尝试过的模式,并告诉我们您使用的编程语言/正则表达式风格。
  • 如果字符串的长度是固定的(12 个字符),您可能总是会删除文本,并且只对前 8 个字符进行替换。
  • 这不是正则表达式的工作。如果可能的话,使用你的语言的字符串替换来做这么简单的事情。
  • .net 将是最好的正则表达式风格。我不是开发人员,所以我可以使用正则表达式,所以我没有其他选择。谢谢。

标签: regex substitution


【解决方案1】:

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

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

Demo

【讨论】:

    猜你喜欢
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    相关资源
    最近更新 更多