使用正则表达式替换新行/返回空格
知道的人的基本问题。
而不是来自
"This is my text. And here is a new line"
至:
"This is my text. And here is a new line"
我明白了:
"This is my text.And here is a new line.
知道为什么吗?
L.replaceAll("[\\\t|\\\n|\\\r]","\\\s");
我想我找到了罪魁祸首。
在下一行,我执行以下操作:
L.replaceAll( "[^a-zA-Z0-9|^!|^?|^.|^\\s]", "");
这似乎是导致我的问题。
知道为什么吗?
我显然尝试执行以下操作:删除所有非字符,并删除所有新行。
\s
是正则表达式中空格字符的快捷方式。 它在字符串中没有意义。 ==>您不能在替换字符串中使用它。 在那里你需要准确填写你想要插入的字符。 如果这是一个空格,只需使用" "
作为替代。
另一件事是:为什么你使用3个反斜杠作为转义序列? Java中有两个就足够了。 你不需要|
(字符类中的(交替运算符)。
L.replaceAll("[\\t\\n\\r]+"," ");
备注
L
没有改变。 如果你想得到一个结果,你需要做
String result = L.replaceAll("[\\t\\n\\r]+"," ");
测试代码:
String in = "This is my text.\n\nAnd here is a new line"; System.out.println(in); String out = in.replaceAll("[\\t\\n\\r]+"," "); System.out.println(out);
尝试
L.replaceAll("(\\t|\\r?\\n)+", " ");
根据系统的不同,换行符是\r\n
或只是\n
。
我找到了这个 。
String newString = string.replaceAll("\n", " ");
虽然,因为你有双线,你将获得一个双倍的空间。 我想你可以再用一个替换所有用一个替换双空格。
如果这不起作用,请尝试:
string.replaceAll(System.getProperty("line.separator"), " ");
如果我使用“\ n”在“string”中创建行,我必须在正则表达式中使用“\ n”。 如果我使用System.getProperty(),我必须使用它。
你的正则表达式是好的,我会用空字符串替换它
String resultString = subjectString.replaceAll("[\t\n\r]", "");
您希望“文本”之间有空格。 和“和”对吗?
当我通过复制样本来尝试正则表达式时,我得到了那个空间
"This is my text. "
所以一切都很好。 也许如果你只用空字符串替换它就可以了。 我不知道你为什么用\ s替换它。 和交替| 在字符类中不是必需的。
您可以使用第一次拆分并使用空格重新加入它。 它会确定的。
String[] Larray = L.split("[\\n]+"); L = ""; for(int i = 0; i