gpt4 book ai didi

java - 在 Java 中使用正则表达式在第一个逗号之后和两个大写字母和一个逗号之前提取字符串

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:14 27 4
gpt4 key购买 nike

我目前正在处理遵循这种格式的字符串:

4,Matt, Hopkins,MI,5.75,Wood,33.0,2.25,2.1,2016-09-02,74.25,69.3,8.254125,151.804125

我正在尝试使用正则表达式将所有单词和整数提取为单独的字符串(如 MI、Wood、33.0 等),但有一个异常(exception):我想将第一个逗号后面的部分视为单个字符串,直到我们全部大写 - 所以正则表达式会提取这个:

[4] [Matt, Hopkins] [MI] [5.75] [Wood] and so forth.

请注意,名称部分可以完全没有逗号,即 [Hopkins] 或多个逗号,即 [Matt, Jr., Hopkins]。全部大写字段描述一个状态,因此始终遵循相同的格式。

我对 Regex 的理解不够深,无法做到这一点 - 到目前为止,我只是想到了

[a-zA-Z(?:\d*\.)?\d+-]+ 

它可以很好地处理所有字段,除了名称。

最佳答案

你可以做类似的事情(我的 Java 有点生疏,我是通过手机发布的):

String[] values = data.split(",(?! )");

Java 允许在正则表达式上拆分字符串,而这个简单的示例使用负前瞻来确保您仅在 CSV 逗号上拆分,而不是名称中的逗号。

关于java - 在 Java 中使用正则表达式在第一个逗号之后和两个大写字母和一个逗号之前提取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39311778/

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