2
如何從字符串中只提取表單XX:YY的時間部分?Java:從字符串中提取特定的REGEXP模式
例如 - 從像一個字符串:
sdhgjhdgsjdf12:34knvxjkvndf,我想只提取12:34。
(周圍的字符可以是空間太當然)
我當然可以找到分號,並得到前兩個字符和後二字符,但它是bahhhhhh .....
謝謝!
如何從字符串中只提取表單XX:YY的時間部分?Java:從字符串中提取特定的REGEXP模式
例如 - 從像一個字符串:
sdhgjhdgsjdf12:34knvxjkvndf,我想只提取12:34。
(周圍的字符可以是空間太當然)
我當然可以找到分號,並得到前兩個字符和後二字符,但它是bahhhhhh .....
謝謝!
您可以使用此環視基於正則表達式的匹配:
(?<!\d)\d{2}:\d{2}(?!\d)
在Java:
Pattern p = Pattern.compile("(?<!\\d)\\d{2}:\\d{2}(?!\\d)");
正則表達式破碎:
(?<!\d) # negative lookbehind to assert previous char is not a digit
\d{2} # match exact 2 digits
: # match a colon
\d{2} # match exact 2 digits
(?!\d) # negative lookahead to assert next char is not a digit
全碼:
Pattern p = Pattern.compile("(?<!\\d)\\d{2}:\\d{2}(?!\\d)");
Matcher m = pattern.matcher(inputString);
if (m.find()) {
System.err.println("Time: " + m.group());
}
看起來不錯!但是,我怎麼能從這個字符串中抽出時間呢?謝謝! – dushkin
在Java中使用'Matcher'類並調用'p.matcher'後跟'matcher.find'和'matcher.group'來獲取您的值 – anubhava
是的!我已經設法找到了這個解決方案!非常感謝! – dushkin