Java 将带有正则表达式的匹配项的一部分插入替换文本

Java 将带有正则表达式的匹配项的一部分插入替换文本,java,regex,Java,Regex,我有一些文字: String s=“月球是一个天体。它是太阳系中第五大自然卫星。月球是已知密度中密度第二大的卫星。” 我想用replaseAll方法将点或点+空格后的每个字符都大写 s = s.replaceAll("((?<=\\.|\\.\\s)\\p{Lower})","$1".toUpperCase()); s=s.replaceAll((?注意:使用相同的模式(您可以改进您的模式) StringBuffer str=new StringBuffer(“月球是一个天体,它是太阳

我有一些文字:

String s=“月球是一个天体。它是太阳系中第五大自然卫星。月球是已知密度中密度第二大的卫星。”

我想用replaseAll方法将点或点+空格后的每个字符都大写

s = s.replaceAll("((?<=\\.|\\.\\s)\\p{Lower})","$1".toUpperCase());

s=s.replaceAll((?注意:使用相同的模式(您可以改进您的模式)

StringBuffer str=new StringBuffer(“月球是一个天体,它是太阳系第五大自然卫星。月球是已知密度中密度第二大的卫星。”);

Pattern p=Pattern.compile((?注:使用相同的模式(您可以改进您的模式)

StringBuffer str=new StringBuffer(“月球是一个天体,它是太阳系第五大自然卫星。月球是已知密度中密度第二大的卫星。”);

Pattern p=Pattern.compile((?谢谢!这好多了)。谢谢!这好多了)。
import java.util.regex.*;
StringBuffer str = new StringBuffer( "The Moon is an astronomical body.it is the fifth-largest natural satellite in the Solar System. the Moon is second-densest satellite among those whose densities are known." );
Pattern p = Pattern.compile( "(?<=\\.|\\.\\s)\\p{Lower}" );
Matcher m = p.matcher( str );

while (m.find()) {
    str.setCharAt(m.end()-1, Character.toUpperCase(str.charAt(m.end()-1)) );
}

System.out.print(str);