再求java正则

sunxingtao 2011-10-13 10:53:57
我想用java正则把下边字符串中table标签的align=left|right|center等删掉,不删除其它标签中的align


<table name=mytable align=left>
<tr>
<td>
</td>
</tr>
</table>
<div name=tt align=right>
</div>
<table width=80px align= left>
<tr>
<td>
</td>
</tr>
</table>
<table height=80px align="left" width=80px >
<tr>
<td>
</td>
</tr>
</table>


要考虑=号两个有空格的情况
要考虑right两边有单双引号的情况
期待完成的代码为

<table name=mytable >
<tr>
<td>
</td>
</tr>
</table>
<div name=tt align=right>
</div>
<table width=80px >
<tr>
<td>
</td>
</tr>
</table>
<table height=80px width=80px>
<tr>
<td>
</td>
</tr>
</table>
...全文
93 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2011-10-13
  • 打赏
  • 举报
回复
这个可能不是最优解,最优解要去翻书
《精通正则表达式》猫头鹰书,早上还想带到公司来的
shine333 2011-10-13
  • 打赏
  • 举报
回复
是否只替换<table>而不考虑<tr><th><td><tbody>之类
    String str = "<table name=mytable align=left>\r\n" + 
" <tr>\r\n" +
" <td>\r\n" +
" </td>\r\n" +
" </tr>\r\n" +
"</table>\r\n" +
"<div name=tt align=right>\r\n" +
"</div>\r\n" +
"<table width=80px align= left>\r\n" +
" <tr>\r\n" +
" <td>\r\n" +
" </td>\r\n" +
" </tr>\r\n" +
"</table>\r\n" +
"<table height=80px align=\"left\" width=80px >\r\n" +
" <tr>\r\n" +
" <td>\r\n" +
" </td>\r\n" +
" </tr>\r\n" +
"</table>";
String regex = "(?i:(<table\\s+[^>]*\\b)align\\s*=\\s*(['\"]?)(left|right|center)\\2)";
System.out.println(str.replaceAll(regex, "$1"));
  • 打赏
  • 举报
回复
str = str.replaceAll("align=\"left\"","");
str = str.replaceAll("align='left'","");
str = str.replaceAll("align ='left'","");
str = str.replaceAll("align = 'left'","");
str = str.replaceAll("align= 'left'","");
softroad 2011-10-13
  • 打赏
  • 举报
回复
replace
菖蒲老先生 2011-10-13
  • 打赏
  • 举报
回复
正则 永远的痛。。。

坐等答案,顺便学习一下。。。

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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