为了账号安全,请及时绑定邮箱和手机立即绑定

如何在java中提取两个字符之间的数据

如何在java中提取两个字符之间的数据

萧十郎 2021-10-06 10:18:01
String text = "/'Team1 = 6', while /'Team2 = 4', and /'Team3 = 2'";String[] body = text.split("/|,");String b1 = body[1];String b2 = body[2];String b3 = body[3];预期结果:b1 = 'Team1 = 6'b2 = 'Team2 = 4'b3 = 'Team3 = 2'
查看完整描述

4 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

使用正则表达式。像这样的东西:


String text = "/'Team1 = 6', while /'Team2 = 4', and /'Team3 = 2'";

Matcher m = Pattern.compile("(\\w+\\s=\\s\\d+)").matcher(text); 

// \w+ matches the team name (eg: Team1). \s=\s matches " = " and \d+ matches the score.

while (m.find()){

    System.out.print(m.group(1)+"\n");

}

这打印:


团队 1 = 6


团队 2 = 4


团队 3 = 2


查看完整回答
反对 回复 2021-10-06
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

您可以使用 split 和 regex 使用交替匹配字符串的开头后跟正斜杠或匹配逗号,一次或多次不匹配逗号,然后是正斜杠,然后是正前瞻,以断言后面的内容交替是一个'

(?:^/|,[^,]+/)(?=')

解释

  • (?: 启动非捕获组

    • ^/ 断言字符串的开头,后跟正斜杠

    • | 或者

    • ,[^,]+/使用否定字符类匹配一个逗号,然后匹配一个或多个不是逗号,然后匹配一个正斜杠

    • (?=') 断言以下内容的正向预测是 '

  • ) 关闭非捕获组

正则表达式演示Java 演示

获得匹配而不是分裂

如果你想匹配一个模式'Team1 = 6',你可以使用:

'[^=]+=[^']+'

正则表达式演示Java 演示


查看完整回答
反对 回复 2021-10-06
  • 4 回答
  • 0 关注
  • 446 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信