正则表达式去除空格 但是换行符后面的空格不要去除!

我写了一个正则Stringreg1="([^x00-xff])(\\s*)(\\d+|[A-Za-z])";([^x00-xff])表示中文(\\s*)表示空格(\\d+... 我写了一个正则 String reg1 = "([^x00-xff])(\\s*)(\\d+|[A-Za-z])";
([^x00-xff])表示中文
(\\s*)表示空格
(\\d+|[A-Za-z])表示数字或者英文
我要的结果是把中文和数字或者英文之间的空格删掉。但是它也会把换行符也给删掉了啊。那现在怎么才能不要把换行符后面的空格给删掉呢?
比如String str = "今天很开心我考了 0.9 8 \r\n 2.0同志";
我想要的结果是这样:

今天很开心我考了0.9 8分 \r\n 2.0同志
但我的正则实际上结果却是这样啊
今天很开心我考了0.9 8 2.0同志
因为 2.0同志前面有换行符并且有空格,我想让正则不要删掉,怎么办呢?
展开
 我来答
知道名字很响亮
2014-12-23 · TA获得超过185个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:339万
展开全部
\s是[\t\f\n\r ]的集合,不止代表空格,也代表换行和回车符,其实\s可以直接打个空格代表。

([^a-zA-Z ]+)[ ]+([^ ]+)|([^ ]+)[ ]+([^a-zA-Z ]+)

替换为

$1$2
追问
这正则是可以的,但是如果字符串里有/a这类的话就过就会有问题了啊

比如 String str = " 今天很开心/a我考了 0.9 8 /0.4 \r\n 2.0同志";

结果就成这样了:
8/0.4
2.0同志

有什么好办法可以优化的吗,谢谢啊
追答
在js,java中已经有/  所以  /  是需要转换(转义)成  \/   在正则替换之前  用替换函数把/替换为\/

我觉得应该把/"等符号替换为别的,最后替换回来

字符串中有\n等,也应该转换成\\n等

沉默了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式