免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3360 | 回复: 5
打印 上一主题 下一主题

[文本处理] 全文中任意字符串替换 如何规避转义符问题? 直接一个字符串替换成另一个 不用正则 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-08 22:58 |只看该作者 |倒序浏览
  我在处理分析html网页
  已经解决嵌套的问题了,现在的任务是将 一段html替换成指定的一个字符串 比如"@1 "
  html中什么字符都可能会出现 所以 在使用sed的时候 经常遇到非法字符 所以sed总是出错

  有没有不用正则直接进行文本替换的方法?(主要是元字符总是来捣乱)

  我尝试使用perl的metaquote 没有替换效果
  各位朋友有解决方法么?

   ¥%……&*ghukj90hj^&*(<>asd

  比如上面,把全文出现这个字符串的地方全部替换成'@2 '
  不要说使用'\'进行转义 因为这个字符串是来自另一个程序处理出来的结果 是个变量!什么都可能是的
  也想过写批量转义的函数 但是sed的元字符都有什么?尝试了一下 错误百出只得放弃

  先谢谢各位了!

论坛徽章:
0
2 [报告]
发表于 2014-11-08 23:02 |只看该作者
如果实在解决不了 下一步准备用python来写个替换命令

可是 这是个非常简单的问题啊 在windows上ctrl h就搞定了 难道shell没有漂亮的解决方法么?我不信

论坛徽章:
0
3 [报告]
发表于 2014-11-08 23:04 |只看该作者
复杂点的嵌套都用shell顺利搞定了 没有想到后来竟卡到这个上面 各位有好的解决方法么?

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2014-11-08 23:14 |只看该作者
回复 1# YunThanatos

more detail information by 'perldoc -f quotemeta' command

$ export x='¥%……&*ghukj90hj^&*(<>asd'; echo "123 $x abc" | perl -lane '{$x=$ENV{"x"};$qx=quotemeta($x);print "input=$_\npattern=$x";s/$qx/\@2/;print "result=$_"}'
input=123 ¥%……&*ghukj90hj^&*(<>asd abc
pattern=¥%……&*ghukj90hj^&*(<>asd
result=123 @2 abc


$ export x='¥%……&*ghukj90hj^&*(<>asd'; echo "123 $x abc" | perl -lane '{$x=$ENV{"x"};print "input=$_\npattern=$x";s/\Q$x/\@2/;print "result=$_"}'
input=123 ¥%……&*ghukj90hj^&*(<>asd abc
pattern=¥%……&*ghukj90hj^&*(<>asd
result=123 @2 abc
   

论坛徽章:
0
5 [报告]
发表于 2014-11-09 00:07 |只看该作者
哥们!刚才程序全部通过测试了!!
太感谢你了! 我也可以睡觉了 哈哈!!

论坛徽章:
0
6 [报告]
发表于 2014-11-09 00:09 |只看该作者
谢谢哥们了!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP