Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
Java 正则表达式将拉出每个非空间组_Java_Regex - Fatal编程技术网

Java 正则表达式将拉出每个非空间组

Java 正则表达式将拉出每个非空间组,java,regex,Java,Regex,输入: 期望输出: 然而,resultArr的内容是{243:72:Y},这表明我的正则表达式过于贪婪,并且匹配整个字符串 如何将其分解,使其在忽略空白的情况下放入stateString中的每个子字符串?使用: 您可能想考虑“+”作为分隔符,而不是简单的“S”,以避免在有多个连续空间时在结果中有空字符串。使用: 您可能想考虑“+”作为分隔符,而不是简单的“S”,以避免在有多个连续空间时在结果中有空字符串。 尝试此。 String abc= "2 43: 72: Y"; List<Strin

输入:

期望输出:

然而,resultArr的内容是{243:72:Y},这表明我的正则表达式过于贪婪,并且匹配整个字符串

如何将其分解,使其在忽略空白的情况下放入stateString中的每个子字符串?

使用:

您可能想考虑“+”作为分隔符,而不是简单的“S”,以避免在有多个连续空间时在结果中有空字符串。

使用:

您可能想考虑“+”作为分隔符,而不是简单的“S”,以避免在有多个连续空间时在结果中有空字符串。

尝试此。

String abc= "2 43: 72: Y";
List<String> strList = Arrays.asList(abc.split("\\s"));
试试这个

String abc= "2 43: 72: Y";
List<String> strList = Arrays.asList(abc.split("\\s"));

更简单的是:

List<String> list = Arrays.asList(stateString.split(" "));

更简单的是:

List<String> list = Arrays.asList(stateString.split(" "));

处理查询的示例代码:

public class RegexTester {
public static void main(String[] args) {
    String input = "2 43: 72: Y";

    Pattern pattern = Pattern.compile("[^\\s]+");
    Matcher matcher = pattern.matcher(input);
    List<String> list = new ArrayList<String>();
    while (matcher.find()) {
        list.add(matcher.group());
    }
    System.out.println(list);
}

}解决您的查询的示例代码:

public class RegexTester {
public static void main(String[] args) {
    String input = "2 43: 72: Y";

    Pattern pattern = Pattern.compile("[^\\s]+");
    Matcher matcher = pattern.matcher(input);
    List<String> list = new ArrayList<String>();
    while (matcher.find()) {
        list.add(matcher.group());
    }
    System.out.println(list);
}

}

你知道你的分隔符是什么样子的,那么为什么不拆分?为什么Perl会出现在你的标记列表中?我想perlmonks会帮助我的。Lol你知道你的分隔符是什么样子的,那么为什么不拆分?为什么Perl会出现在你的标记列表中?我想perlmonks会帮助我的。可能应该是:String[]resultArray=stateString.split\\s+;将多个空格组合在一起。啊,是的:P这就是我想要的,忘记了拆分。您不需要在字符串[]和列表中首先使用。仅执行以下列表strList=stateString.split\\s;它消耗更少memory@UmairSaleem:将在哪个版本的Java中编译?我也是,而您编写的确切代码段给出了一个编译错误:类型不匹配:无法从字符串[]转换为列表可能应该是:字符串[]resultArray=stateString.split\\s+;将多个空格组合在一起。啊,是的:P这就是我想要的,忘记了拆分。您不需要在字符串[]和列表中首先使用。仅执行以下列表strList=stateString.split\\s;它消耗更少memory@UmairSaleem:在哪个版本的Java中编译?我也是,而您编写的代码片段给出了一个编译错误:类型不匹配:无法从字符串[]转换为列表
public class RegexTester {
public static void main(String[] args) {
    String input = "2 43: 72: Y";

    Pattern pattern = Pattern.compile("[^\\s]+");
    Matcher matcher = pattern.matcher(input);
    List<String> list = new ArrayList<String>();
    while (matcher.find()) {
        list.add(matcher.group());
    }
    System.out.println(list);
}