【问题标题】:Finding the 1st and 2nd occurrence of a regex in a string in Java在Java中的字符串中查找第一次和第二次出现的正则表达式
【发布时间】:2018-02-08 16:55:59
【问题描述】:

如果我有一个字符串,例如

First timing is 10:10:30, second timing is 11:12:45, third is 12:14:25

如何仅获取格式化为仅显示分钟和秒的计时的第一次和第二次出现?

例如,最终结果应该是2个字符串,

string1 = 10:10
string2 = 11:12

谢谢。

【问题讨论】:

  • 到目前为止你尝试了什么?向我们展示您的代码,问题是什么?
  • 为什么不直接找到所有\d+:\d+(?=:\d+) 并从数组中获取前两个?
  • 您可以添加一个逗号以获取示例字符串 \d+:\d+(?=:\d+,) 中的前 2 个

标签: java regex string


【解决方案1】:

var regEx = /timing[^\d]+(\d+:\d+)/ig;
var text = 'First timing is 10:10:30, second timing is 11:12:45, third is 12:14:25'
var match = regEx.exec(text);

while(match !== null) {
    console.log(match[1]);
    match = regEx.exec(text);
}

【讨论】:

    【解决方案2】:
      public static void main(String[] args) {
        String myString = "First timing is 10:40:30, second timing is 11:12:45, 
        third is 12:14:25";
        myString = myString.replaceAll("[a-zA-z]","");
        String[] numbers = myString.trim().split("\\s*,\\s*");
        for(int i=0;i<numbers.length;i++){
                 System.out.println("string"+(i+1)+" = "+numbers[i].substring(0,numbers[i].length()-3));     
        }
    
    }
    

    输出
    string1 = 10:40 string2 = 11:12 string3 = 12:14

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多