假设我有一个包含大量文本和(x)HTML标记的字符串.我想删除给定标记的所有实例(以及该标记的任何属性),保留所有其他标记和文本.完成这项工作的最佳正则表达方式是什么?
编辑添加:哦,我很欣赏使用正则表达式来解决这个问题并不是最好的解决方案.但是,为了便于讨论,我们可以假设这个特定的技术决策比我的工资等级高出一些水平吗?;)
尝试使用正则表达式解析HTML通常是一个非常糟糕的主意.使用解析器,应该有一个可用于您选择的语言.
你可能能够逃脱这样的事情:
?tag[^>]*?>
但这取决于你究竟在做什么.例如,这不会删除标记的内容,并且可能会使HTML处于无效状态,具体取决于您尝试删除的标记.它也很好地应对无效的HTML(并且有很多关于HTML).
改为使用解析器:)
我认为这里发生了一些严重的反正则表达偏见.很多时候,如果使用完整的解析器没有意义,可能需要从某个标记中剥离特定标记.
当然有时候解析器可能是最好的选择,但如果你正在寻找一个正则表达式,那么:
Tags | 热门标签RankList | 热门文章
- 1Jenkins SSH shell在执行远程命令之前关闭
- 2如何检查Elixir中的字符串是否为空
- 3使用控制台日志"BKSendHIDEvent"冻结iOS 9应用程序
- 4在Azure Web应用程序设置中使用数组
- 5单击按钮时触发Ctrl + z和Ctrl + y键
- 6添加动态侦听器数量(Spring JMS)
- 7如何在用作函数结果的闭包内应用trait
- 8在Spring MVC中使用Jackson将Map序列化为一对夫妇
- 9jQuery文件上传Basic Plus Ui和i18n
- 10从加密方法解密
- 11InvalidValueError:不是HTMLInputElement的实例
- 12在Android上安装/更新Cordova应用程序时出现错误-505
- 13纯CSS3不断移动滑块
- 14Xcode:如何导出开发人员配置文件以便在另一台Mac上导入它
- 15使用SQLite.swift批量插入,性能如何?
- 16某些字段上的PHP Codeigniter批量更新失败
- 17AngularJS NgMessages不隐藏消息
- 18gen_server中的错误也会终止调用进程?
- 19C++在函数参数上传递std :: unique_ptr对象作为引用的正确方法
- 20Java:双重打印-println或printf