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