找出不在"<>" 或 "</>"之内的所有空格,正则表达式该怎么写? 如String str="<input value='test' >abcd efg hi</input >";希望找出abcd与efg和efg和hi之间的空格,如何写正则表达式? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不在"<>" 或 "</>"之内的所有空格,其实就是找出不在"<>"的所有空格吧 要是我,就用json转2次,生成不带格式的关于XML的,可以参考下这个:http://www.csharpwin.com/dotnetspace/8689r8636.shtml 那不在"<>"之内的又咋写了? Java中做不到太严谨,不过一般来说也够了找出来做什么,替换吧?String str="<input value='test' >abcd efg hi</input >";String result = str.replaceAll(" +(?=[^<>]*(?:<|$))", "");System.out.println(result); 做不到太严谨是啥意思哟?上面的正则表达式有小小的bug? 只能加正向搜索条件,不能包含在“...>”中(?=[^<>]*(?:<|$))至于逆向搜索条件,因为需要用到不定量词,Java中不支持(?<=(?:^|>)[^<>]*)如果源字符串比较规范,<>都是配对出现的话,那是没什么问题的,如果不是太规范的话,其实加上逆向搜索也不是很严谨的不过话说回来,写正则,适用就好,倒不用一味的追求严谨了 只能加正向搜索条件,不能包含在“...>”中(?=[^<>]*(?:<|$))至于逆向搜索条件,因为需要用到不定量词,Java中不支持(?<=(?:^|>)[^<>]*)如果源字符串比较规范,<>都是配对出现的话,那是没什么问题的,如果不是太规范的话,其实加上逆向搜索也不是很严谨的不过话说回来,写正则,适用就好,倒不用一味的追求严谨了 5楼不满足你需求?Java中正则很难做到更严谨了,除非改成其它方式,比如自己写状态机 这其实是找 >和<中的空格, >和<中间不许出现<所以 大体是: >([\s]*?)< 说得很好我觉得楼主是要做页面压缩吧?开发wap1.2或者wap2.0做手机浏览吗?我觉得是把网页源文件中的回车换行,tab,换页什么的都替换成一个空格?网上似乎有这样过滤包吧?String result = str.replaceAll(" +(?=[^<>]*(?:<|$))", "");我觉得这样或许好一些String result = str.replaceAll("(?ims)(?<=[>])\\s+(?=[^<>]*(?:<|$))", " "); 请问接口的所有方法都要重写吗? eclipse预定义 正则问题。。 java面试题~~会做的发下代码~~谢谢~~ JAVA网络编程 能否传递类模板,而不是对象? 在线散分50请高手用程序实现floatToString,请关注,多谢 [求救]向一个网址提交form的问题 为何遇上 java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment ? java, application , 图形对象, 移动, 示例, 请教 ,多谢 求高手们帮忙,谢谢各位了! java中“==”为什么会出现这种现象
关于XML的,可以参考下这个:
http://www.csharpwin.com/dotnetspace/8689r8636.shtml
String result = str.replaceAll(" +(?=[^<>]*(?:<|$))", "");
System.out.println(result);
(?=[^<>]*(?:<|$))
至于逆向搜索条件,因为需要用到不定量词,Java中不支持
(?<=(?:^|>)[^<>]*)如果源字符串比较规范,<>都是配对出现的话,那是没什么问题的,如果不是太规范的话,其实加上逆向搜索也不是很严谨的
不过话说回来,写正则,适用就好,倒不用一味的追求严谨了
(?=[^<>]*(?:<|$))
至于逆向搜索条件,因为需要用到不定量词,Java中不支持
(?<=(?:^|>)[^<>]*)如果源字符串比较规范,<>都是配对出现的话,那是没什么问题的,如果不是太规范的话,其实加上逆向搜索也不是很严谨的
不过话说回来,写正则,适用就好,倒不用一味的追求严谨了
5楼不满足你需求?Java中正则很难做到更严谨了,除非改成其它方式,比如自己写状态机
说得很好
我觉得楼主是要做页面压缩吧?开发wap1.2或者wap2.0做手机浏览吗?
我觉得是把网页源文件中的回车换行,tab,换页什么的都替换成一个空格?网上似乎有这样过滤包吧?String result = str.replaceAll(" +(?=[^<>]*(?:<|$))", "");
我觉得这样或许好一些
String result = str.replaceAll("(?ims)(?<=[>])\\s+(?=[^<>]*(?:<|$))", " ");