关于正则表达是的问题

tingya 2004-07-25 04:40:37
我用正则表达是将指定的一行替换为空行,经管如此,但是空行中的回车没有被替换,比如
<head>
<style>dfdf</style>
</head>
我想将style行替换为空
<head>
</head>
但替换后的结果为
<head>

</head>
不知道怎么才能彻底替换.
...全文
116 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
registered 2004-07-25
  • 打赏
  • 举报
回复
有点理解楼主的意思了
你这个问题想达到完美的效果用这个方法不容易,而且效率低
一个语句无法解决
你需要按行读,然后把每行想要消去的东西消去
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>
还是那句话,想达到完美效果你需要按行读,一句话不行!
registered 2004-07-25
  • 打赏
  • 举报
回复
to 楼主:
空格或者tab之类的算不算?

to wtjd(涛涛):
regular expression 正则表达式,专门用来操作字符串的
推荐google搜一下
或者看sdk文档
http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html
tingya 2004-07-25
  • 打赏
  • 举报
回复
to registered:
我用的是\\s*style\\s*.*?>((.|\\r|\\n)*?)<\\s*/\\s*style\\s*>((\\r|\\n)*?)
但是不行,我是作为一个字符串来读取得。
我的希望就是如果</style>后面有\n,则将其去掉,如果没有,则什么都不做。赫赫。
wtjd 2004-07-25
  • 打赏
  • 举报
回复
什么叫正则表达式,解释一下,好吗?
registered 2004-07-25
  • 打赏
  • 举报
回复
如果你读的时候是一行一行读那当然不行(除非自己加代码)
如果你是一次将所有信息读入一个 String 可以试试下面的方法:
str = str.replaceAll("\\s*<style>.*</style>\\s*", "");

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧