我需要编写正则表达式,它可以通过以下格式从字符串中给出子串:
String s1 = 123:4567:1:2
我想要四种不同的表达方式作用于s1
:
我尝试了很多选项,但无法编写符合我上述要求的正确选项。在java中使用字符串方法,这是第二个工作,但不需要使用java逻辑...
答案 0 :(得分:1)
您可以在java
中使用方法split
String s1 = '123:4567:1:2';
// put the result in an array of strings
String[] results = s1.split(':');
//result[0] will be equal to '123'
//result[1] will be equal to '4567'
//result[2] will be equal to '1'
//result[2] will be equal to '2'
答案 1 :(得分:1)
在Java中,您可以通过使用Regex库来实现这一目标:
import java.util.regex.*;
...
Pattern p = Pattern.compile("(\\d+):?");
Matcher m = p.matcher(s1); // s1 would be your string
while(m.find())
{
m.group(1); // here sits the value you want to extract.
// in loop 1 the first one in loop 2 the second one and so on
}
编辑:对不起,自从我上次在java中使用正则表达式以来已经有一段时间了。
我几乎重写了我的整个帖子。对此感到抱歉,但现在应该可以了。