首页 > 解决方案 > 如何将 Java 正则表达式匹配到结果字符串?

问题描述

java - 如何在java中的词法分析器中标记字符串?

请参考上面的问题。我从未使用过 java regex 。如何将所有子字符串放入新字符串中,匹配字符(符号如'('')''。''<''>''')用单个空格分隔。例如,在正则表达式之前

 String c= "List<String> uncleanList = Arrays.asList(input1.split("x"));" ;

我想要这样的结果字符串。

String r= " List < String > uncleanList = Arrays . asList ( input1 . split ( " x " ) ) ; "

标签: javaregexstringalgorithm

解决方案


参考您链接到的代码,matcher.group()将为您提供一个令牌。简单地使用 StringBuilder 附加这个标记和一个空格来获取一个新的字符串,其中标记是空格分隔的。

String c = "List<String> uncleanList = Arrays.asList(input1.split(\"x\"));" ;
Pattern pattern = Pattern.compile("\\w+|[+-]?[0-9\\._Ee]+|\\S");
Matcher matcher = pattern.matcher(c);

StringBuilder sb = new StringBuilder();
while (matcher.find()) {
    String token = matcher.group();
    sb.append(token).append(" ");
}
String r = sb.toString();
System.out.println(r);


推荐阅读