首页 > 解决方案 > 正则表达式将某些字符串替换为后面的数字范围

问题描述

好的。所以我正在处理需要删除某些值的单元格。在我对下面代码的评论中,有两个字符串示例。我想创建一个字符串,它也可以用它的 8 个数字替换末尾的字符串。请记住,我真的在寻找一种算法,它在“cvr”之后取 8 个数字,而不是单元格末尾的文本值,因为这个字符串也可能在开头。

//不要替换我 12345678 || 简历 87654321

String replaceCVRs = textValueForCPR.replaceAll("|CVR|Cvr|cvr|"+ (8 numbers after???))

标签: javaregexstringsyntaxinteger

解决方案


您可以使用

String replaceCVRs = textValueForCPR.replaceAll("(?i)(cvr)\\s*\\d{1,8}", "$1")

注意:如果您想在 8 位数字后有更多数字时使匹配失败,请(?!\d)在末尾添加前瞻,"(?i)(cvr)\\s*\\d{1,8}(?!\\d)".

请参阅此处的正则表达式演示

细节

  • (?i)- 不区分大小写模式
  • (cvr)- 第 1 组:cvr 字符串
  • \s* - 0 个或多个空格
  • \d{1,8}- 一到八位数。

推荐阅读