文本处理笔记

4 篇文章 0 订阅
3 篇文章 0 订阅

简单的记录一下,最近遇到的一些字段处理上的问题。


在使用爬虫抓取数据时,有时会抓取到一些让人很无奈的数据,处理方式也需要你做一些不同的处理。
因为我用的框架是自己拼接sql语句,也就是匹配到页面内容后(一般用正则匹配),给字段内容的两端添加单引号,来实现拼接,在这种情况下就会出现一些很有意思的事情,例如字段内容自带引号(包括单引号和双引号,Mysql都识别)。
举例说明:

nametelephone
王子123456789
I’am987765321
角”小王1275376215
小周\/237858763
1\小李2342342
O(∩_∩)O哈哈~32213124

以上内容都是网页上实际显示的内容,当我们自己拼接字段时,就会出现这样'I'ma',这样'角"小王',还有这样'小周\',这里说明的只是部分并不完全,请读者自己类比。
这里解释一下各字段的结果,第一种情况下,sql语句多了一个单引号,这样的语句执行时会出错,第二个类似(我当时遇到这种问题,但目前看来直接执行sql语句并没有影响),第三种情况下\会把单引号转义,这是sql语句就少了一个单引号,当出现以上的类似情况时,我们就需要去自己转义字段内部的特殊字符,以避免出现无法插入的情况。


关于转义,这也是一个很坑的问题,因为本身在java语言中\也需要转义,所以很多时候转义字符数量就会很奇怪。
下面就是转义的方式。

//此处模拟要拼接的字段内容
String str = "'I'am'";
str = "'" + str.substring(1, str.length() - 1).replaceAll("\'", "\\\\\'") + "'";
System.out.println(str);

输出结果:'I\'am'
//此处模拟要拼接的内容,实际字段内容是'小周\'
String str = "'小周\\'";
str = str.replaceAll("\\\\", "\\\\\\\\");
System.out.println(str);

输出结果:小周\\

上面的方式是我个人整理的内容,如果看到内容的大神有更好的处理方式,请评论或私信告知,万分感谢。

以上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值