Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 我们可以编写一个正则表达式,从冒号(:)分隔的字符串中得到一个子字符串吗?_Regex - Fatal编程技术网

Regex 我们可以编写一个正则表达式,从冒号(:)分隔的字符串中得到一个子字符串吗?

Regex 我们可以编写一个正则表达式,从冒号(:)分隔的字符串中得到一个子字符串吗?,regex,Regex,我需要编写正则表达式,它可以从以下格式的字符串中获得子字符串: String s1 = 123:4567:1:2 我想要四个作用于s1的不同表达式: 一个能给我123的 一个能给我4567的 一个能给我1 一个能给我2 我尝试了这么多的选项,但未能写出符合我上述要求的正确选项。在java中使用字符串方法只需几秒钟,但不需要使用java逻辑…您可以在java中使用方法split String s1 = '123:4567:1:2'; // put the result in an arra

我需要编写正则表达式,它可以从以下格式的字符串中获得子字符串:

 String s1 = 123:4567:1:2
我想要四个作用于
s1
的不同表达式:

  • 一个能给我123的
  • 一个能给我4567的
  • 一个能给我1
  • 一个能给我2

我尝试了这么多的选项,但未能写出符合我上述要求的正确选项。在java中使用字符串方法只需几秒钟,但不需要使用java逻辑…

您可以在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'

在Java中,您可以通过使用正则表达式库来实现这一点:

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中使用正则表达式已经有一段时间了。
我几乎重写了我的整个帖子。很抱歉,但现在应该可以了。

请详细说明在java中使用字符串方法的
含义。这是第二项工作,但不需要使用java逻辑…
?嗨,桑托什。我对你的问题进行了编辑,让它更清楚,我想。。。您可以自己使用“编辑”按钮来进一步改进它。请注意,这里的问题通常尽可能简短和切题,无需事先感谢或签名。您可以填写您的StackOverflow配置文件信息以获取姓名等信息。请确保在提交之前预览您的帖子外观,然后重试。无论如何,欢迎您,不要让失望的投票让您气馁……习惯这些惯例可能需要一些时间。谢谢您的回复,不过正如我在上面的帖子“在java中使用字符串方法是第二件事,但不需要使用java逻辑…”不能使用java字符串方法…根据我的要求,我需要使用java正则表达式,它将应用于某些字符串,如(s1)上面提到的…应该给我所需的子字符串…上面建议的refexp不起作用..请建议一些其他regexp用于相同的。好的,对不起,自从我上次在java中使用regex已经有一段时间了。。。现在来看看