Java 通过正则表达式从字符串中删除前导换行符?

Java 通过正则表达式从字符串中删除前导换行符?,java,regex,string,newline,Java,Regex,String,Newline,我是“REGEX”的新手。这个问题是关于java中REGEX的培训和教育 我尝试从字符串中删除前导新行字符。(我知道我们可以通过“trim()”来完成此操作,但我不想使用它)。我使用“^[\r\n]+”作为正则表达式,如下所示: str = "\r\n\r\ntest"; str.replaceAll("^[\r\n]+", ""); System.out.print(str); 我想结果会是 试验 但结果是: CRLF CRLF test 如您所见,前导新行字符不会被删除。我也尝试使用“^

我是“REGEX”的新手。这个问题是关于java中REGEX的培训和教育

我尝试从字符串中删除前导新行字符。(我知道我们可以通过“trim()”来完成此操作,但我不想使用它)。我使用“^[\r\n]+”作为正则表达式,如下所示:

str = "\r\n\r\ntest";
str.replaceAll("^[\r\n]+", "");
System.out.print(str);
我想结果会是

试验

但结果是:

CRLF
CRLF
test

如您所见,前导新行字符不会被删除。我也尝试使用“^\s”或“^\s+”作为正则表达式,但结果相同。您知道为什么这些正则表达式与前导新行字符不匹配吗?

无法修改字符串:replaceAll返回更改后的字符串

str = str.replaceAll(...);

无法修改字符串:replaceAll返回已更改的字符串

str = str.replaceAll(...);

我对java了解不多,但这里有一个通用解决方案:我对java了解不多,但这里有一个通用解决方案: