我有一个文件,每行写的名字如下: subhash chand(换行) yobie chimwanachomama(换行) riadh chaieb(换行)
现在,如果我运行regexp搜索[a-z] [a-z],它会返回“su bh as ch an yo ...”。 是否有一个正则表达式模式可以返回这种形式的匹配“”su hab ha as sh ch ha nd ...“?这个正则表达式就像长度为'2'的标记化器一样。如果regexp是一个有效的Java正则表达式会很棒
答案 0 :(得分:1)
试试这个正则表达式:
(?=([a-zA-Z]{2}))
这将在字符串中向前看,如果后面的字符串与[a-zA-Z]{2}
匹配,则匹配空字符串,然后将其后的2个字符放入组中。由于引擎会检查每个索引,这将返回您的预期结果。
你只需要获得比赛的所有组1
final String regex = "(?=([a-zA-Z]{2}))";
final String string = "subhash chand\n"
+ "yobie chimwanachomama\n"
+ "riadh chaieb";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println(matcher.group(1));
}