gpt4 book ai didi

java - 我需要使用没有数组或循环的 Java/RegEx 从大型数据文件的车辆描述字段中删除 ~50 个颜色名称

转载 作者:行者123 更新时间:2023-11-29 10:14:31 24 4
gpt4 key购买 nike

我正在使用允许 Java 帮助转换数据的数据集成工具。问题是我无法创建数组或使用循环,因为它们不受支持。

我的字段具有如下字符串值:

04 Blue Honda Accord
12 Inferno Red Chevrolet Tahoe
10 Purple Ford Taurus

我只需要去掉颜色,这样它们就会:

04 Honda Accord
12 Chevrolet Tahoe
10 Ford Taurus

我唯一能想到的就是用 49 种颜色名称创建一个正则表达式,但我的正则表达式非常糟糕。

最佳答案

假设表单中每个字段只有一个值 digits colours description你可以试试

text = text.replaceFirst("(?i)(?<=\\d)\\s(red|green|blue)\\b","");
  • (?i)将正则表达式不区分大小写,因此“red”将匹配“Red”或“RED”或“ReD”等
  • (?<=\\d)将使用 look-behind检查实际匹配之前是否为数字的机制
  • \\s代表空格
  • (red|green|blue)表示红色或绿色或蓝色
  • \\b代表 word boundary检查颜色是否不会成为描述中下一个单词的一部分,如 greenhouses

顺便说一句,如果你有一些颜色是其他颜色的一部分,比如 graygray-red然后一定要把最具体的写在gray-red|gray之前.这很重要,因为正则表达式会尝试根据从左到右的顺序查找匹配项,因此如果您的文本包含 12 gray-red Mercedes你将使用 replaceAll("gray|gray-red","")你会看到结果 12 -red Mercedes因为gray可以(并且曾经)在 gray-red 之前匹配.

关于java - 我需要使用没有数组或循环的 Java/RegEx 从大型数据文件的车辆描述字段中删除 ~50 个颜色名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21608029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com