我希望使用Java中的RegX从包含它的字符串中找到包含多个点的数字序列,比如1.2.3.4.5。这种类型的数字系统被用于指标体系中。
例如。你好,世界12.12.12世界。从这个字符串中,我只想提取12.12.12。我在下面的代码中尝试过,但是如果字符串类似于abc4.2.4.24abc.,它不会给出输出。
Pattern MY_PATTERN = Pattern.compile("^(?:[\\dx]{1,6}\\.){0,6}[\\dx]{1,6}$");
Matcher m = MY_PATTERN.matcher("4.2.4.2.4");
while (m.find())
{
String s = m.group(0);
System.out.println(s);
}发布于 2018-06-18 07:17:16
模式字符串开头和结尾的^和$要求匹配包含整个字符串。更准确地说,^匹配字符串的开头,$匹配结尾。当您的字符串是"abc4.2.4.24abc"时,数字和点的顺序既不会从字符串的开头开始,也不会在结束时结束,因此找不到匹配的。
只要删除^和$,就可以在abc4.2.4.24abc中找到4.2.4.24。
https://stackoverflow.com/questions/50903511
复制相似问题