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

我目前正在使用遵循以下格式的字符串:

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等中),但有一个例外:我想将第一个逗号后面的部分视为单个字符串,直到我们掌握了所有上限-因此正则表达式将提取以下内容:

[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,regex

来源: https://codeday.me/bug/20191026/1938633.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值