有一个字符串给出:
_xdyjp_bn_qnp_00:00:05,94_00:00:11,41للأأامذخائرعنقوديةلقمعالاحتجاجا
想把这三个部分分开:
认为合理的方法是找到一个正则表达式,它可以匹配一个可以帮助我分开的数字的开头:
第二个可以使用.split(“”)填充。但问题是我无法使用能够完成上述操作的正则表达式。
任何帮助都会很棒!
正则表达式的新功能。
答案 0 :(得分:0)
好。我可以提出一个不一定使用正则表达式的解决方案,但这可以解决你的问题。
String your_string = "test12345xxxx"; // Replace with your string here.
String[] parts = your_string.split(" "); // Will return two parts acording to your example.
String string3 = parts[1]; // The last part of the string.
String separate = parts[0];
String string1;
String string2;
for(int i=0;i<separate.length;i++)
{
if(isDigit(separate.charAt(i))
{
string1 = separate.substring(0,i);
string2 = separate.substring(i,separate.length);
break;
}
}
// Basically, once you detect a number you will split the string into two.
我希望这会帮助你。我不知道是否有办法根据&#34;部分&#34;分割字符串。正则表达式,可能需要更多的手动。
答案 1 :(得分:0)
您可以使用以下内容:
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) );
}
}
说明:
()之间的规则涉及您要捕获的组。