有一个字符串:
_xdyjp_bn_qnp_00:00:05,94_00:00:11,41 尼亚加拉大军
想要将这三个部分分开:
- _xdyjp_bn_qnp_
- 00:00:05,94_00:00:11,41
认为合理的方法是找到一个可以匹配数字开头的正则表达式,这可以帮助我区分:
- _xdyjp_bn_qnp
- 00:00:05,94_00:00:11,41 亲爱的 friend 们
第二个可以使用 .split("") 溢出。但问题是我无法使用可以执行上述操作的正则表达式。
任何帮助都会很棒!
正则表达式新手。
最佳答案
你可以使用类似的东西:
public static void main(String[] args) {
String line = "_xdyjp_bn_qnp_00:00:05,94_00:00:11,41 يلجأ النظام السوري إلى استخدام ذخائر عنقودية لقمع الاحتجاجا";
String pattern = "(.*?)(\\d.*?)\\s(.*)";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value: " + m.group(1) );
System.out.println("Found value: " + m.group(2) );
System.out.println("Found value: " + m.group(3) );
}
}
说明:
() 之间的规则涉及您要捕获的组。
- 第 1 组:(.*?) - 直到下一个元素第一次出现之前的所有内容
- 第 2 组:(\\d.*?)\\s - 第一个数字和第一个空格之间的所有内容
- 第 3 组:(.*) - 其他所有内容
关于java - Java正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34707178/