如果你读的时候是一行一行读那当然不行(除非自己加代码)
如果你是一次将所有信息读入一个 String 可以试试下面的方法:
str = str.replaceAll("\\s*<style>.*</style>\\s*", "");
如果你是一次将所有信息读入一个 String 可以试试下面的方法:
str = str.replaceAll("\\s*<style>.*</style>\\s*", "");
解决方案 »
- 请问,如何得到容器内的组件
- 在多线程中是否碰过需要System.out.println()打印点东西程序线程才会跑顺畅的?
- 在java中如何在一张图片上添加按钮控件?
- 如何选择JRE环境
- 如何JFileChooser显示英文?
- 请问swing中如何改变按钮大小
- (JAVA新手)请教大家一个关于求出数组中最大值的问题
- 类型转化问题2
- 我在调用FtpClient类的put(filename)函数时,报错???同样的代码为什么有的计算机上可以执行,有的就报异常?高分求救!
- 我如何下载 sun java的for windows源码,我已经加入JDClianmeng
- java绘图颜色代码怎么写?
- 关于APLLET的几个小问题。
我用的是\\s*style\\s*.*?>((.|\\r|\\n)*?)<\\s*/\\s*style\\s*>((\\r|\\n)*?)
但是不行,我是作为一个字符串来读取得。
我的希望就是如果</style>后面有\n,则将其去掉,如果没有,则什么都不做。赫赫。
空格或者tab之类的算不算?to wtjd(涛涛):
regular expression 正则表达式,专门用来操作字符串的
推荐google搜一下
或者看sdk文档
http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html
你这个问题想达到完美的效果用这个方法不容易,而且效率低
一个语句无法解决
你需要按行读,然后把每行想要消去的东西消去
str = str.replaceAll("\\s*<\\s*style[^>]*>[^<]*<\\s*/\\s*style\\s*>\\s*", "\n");
这个语句可以将
<head>
<style>dfdf</style>
</head>
<head>
<style>dfdf</style>
</head>
换成
<head>
</head>
<head>
</head>
但是无法换成
<head>
</head>
<head>
</head>
还是那句话,想达到完美效果你需要按行读,一句话不行!