Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正则表达式将certains字符串替换为后面的一系列数字_Java_Regex_String_Syntax_Integer - Fatal编程技术网

Java 正则表达式将certains字符串替换为后面的一系列数字

Java 正则表达式将certains字符串替换为后面的一系列数字,java,regex,string,syntax,integer,Java,Regex,String,Syntax,Integer,好的。因此,我正在处理需要删除某些值的单元格。在我下面代码中的注释中,有两个字符串示例。我想创建一个字符串,也可以用它的8个数字替换结尾的字符串。请记住,我真的在寻找一种算法,它在“cvr”后面取8个数字,而不是单元格末尾的文本值,因为这个字符串也可能在开头 //请勿更换12345678 | | cvr 87654321 String replaceCVRs = textValueForCPR.replaceAll("|CVR|Cvr|cvr|"+ (8 numbers after???))

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

//请勿更换12345678 | | cvr 87654321

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

String replaceCVRs = textValueForCPR.replaceAll("(?i)(cvr)\\s*\\d{1,8}", "$1")
注意:如果您想在8位数字后有更多的数字,则在末尾添加
(?!\d)
前瞻,
“(?i)(cvr)\\s*\\d{1,8}(?!\\d)”

详细信息

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

  • String replaceCVRs=textValueForCPR.replaceAll(“(?i)(cvr)\\d{8}”,即“$1”)
    ?@WiktorStribiż您的答案似乎有效。然而,它只有在“cvr”和8个数字之间没有空格时才起作用。如果他们之间有“”怎么办?我能用这行代码来表达吗?@WiktorStribiżew再次感谢。成功了!不过,我还有一个相关的小问题。我如何允许它删除从1到8的数字。因为有些CVR少于8个号码,我也想删除。