gpt4 book ai didi

Java 正则表达式 replaceAll 多行

转载 作者:IT老高 更新时间:2023-10-28 20:41:00 24 4
gpt4 key购买 nike

我对多行字符串的 replaceAll 有疑问:

String regex = "\\s*/\\*.*\\*/";
String testWorks = " /** this should be replaced **/ just text";
String testIllegal = " /** this should be replaced \n **/ just text";

testWorks.replaceAll(regex, "x");
testIllegal.replaceAll(regex, "x");

以上适用于 testWorks,但不适用于 testIllegal!?为什么会这样,我该如何克服?我需要替换像注释/* ... */这样跨越多行的内容。

最佳答案

您需要使用 Pattern.DOTALL 标志来表示点应该匹配换行符。例如

Pattern.compile(regex, Pattern.DOTALL).matcher(testIllegal).replaceAll("x")

或者使用 (?s) 在模式中指定标志,例如

String regex = "(?s)\\s*/\\*.*\\*/";

关于Java 正则表达式 replaceAll 多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4154239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com