【发布时间】:2014-10-03 10:05:11
【问题描述】:
以下替换是否保证使行终止符\r\n 完好无损?
"Hello\r\nWorld".replaceAll(".", " ")
我不确定是否可以为所有正则表达式全局指定 DOTALL 标志。
这样写会不会更安全?
"Hello\r\nWorld".replaceAll("[^\r\n]", " ")
【问题讨论】:
-
您希望
DOTALLoff 适合您的情况。默认情况下它是关闭的。无论如何,使用 Java 尝试一次就足够了,你得到的几乎就是你保证得到的。 -
"Hello\r\nWorld".replaceAll(".", " ")会将\r\n留在原始输入中。 -
@MarkoTopolnik 所以没有办法在特定的正则表达式之外全局启用
DOTALL? -
从技术上讲,您可以在开头使用
(?s)为整个表达式启用它,但是没有为从那时起创建的所有正则表达式设置全局选项这样的事情。 -
是的,Regex API 没有全局配置——当然,这是一件非常好的事情。