数据库字段包含反斜杠的查询处理

像下图中字段值里带有反斜杠的记录:

这种如果要查询的话,必须使用3个反斜杠才能查到,比如 like ”%D\%“ 是查不到上面两条记录的,必须使用 like ”%D\\\%“ ,原因是反斜线符号会被语法分析程序剥离一次,在进行模式匹配时,又会被剥离一次,最后会剩下一个反斜线符号接受匹配。

那么在前端查询框中输入 ”D\“ ,提交到action后,action需要将反斜杠替换为三个反斜杠,而字符串 ”D\“ 在java中接收到时是有两个反斜杠的,因为反斜杠在java中需要加一个反斜杠转义为字符,像这个样子: ”D\\“ 。

那么replace是不是可以写成这样呢:str.replace("\\", "\\\\\\") ,两个替换为6个。

No No No ,这样子是不行的,因为反斜杠在正则表达式中需要加反斜杠转义,也就是说双反斜杠要写成4个反斜杠,也就是说得改成4个反斜杠替换为12个,感觉好尬呀,太多反斜杠了,下面来看看正确的写法:

myfileurl = myfileurl.replaceAll("\\\\", "\\\\\\\\\\\\");

服了服了,怕了怕了 

原文地址:https://www.cnblogs.com/LcxSummer/p/10758171.html

时间: 2024-10-11 16:31:32

数据库字段包含反斜杠的查询处理的相关文章

[Asp.net]c#中的斜杠和反斜杠

引言 在外地出差,给客户部署项目,三家做的项目要在一起集成,这就造成数据格式不同,路径中的斜杠和反斜杠造成了很大的问题. 查了一下这方面的资料,这里做一些记录,算是一个小结吧. 正斜杠(/)与反斜杠(\)总结 正斜杠/表示除法,分隔.在windows系统中通常用来分隔命令行参数,/表示选项等.不能作为文件名. 反斜杠\,在windows系统中用来表示目录. 而在unix系统中,/表示目录.由于web遵循unix命名,所以在网址(URL)中,/表示目录. C#中反斜杠\与斜杠/ 转移字符路径的问题

绝对路径以及相对路径中的斜杠和反斜杠

一.C++文件中的路径 文件路径中的正斜杠和反斜杠 正斜杠,又称左斜杠,符号是"/": 反斜杠,也称右斜杠,符号是"\". 文件路径的表示可以分为绝对路径和相对路径: 1. 绝对路径 绝对路径表示相对容易, 例如要打开"C: \Documents andSettings\All Users\My Documents\Downloads\pillow.jpg",则: Fp =fopen("C: \\Documents andSetting

在数据库中,文件路径应该存储斜杠/,还是反斜杠\呢?

背景 在做Web项目中,需要上传头像,数据库表中自然存储其相对路径,然后就想应该存储斜杠还是反斜杠呢?(当然好像也不需要特别关心,因为在程序中把路径读取到直接上传保存就知道是斜杠还是反斜杠了,这里仅简单地想一下) 认识 1.首先网址是斜杠,如https://www.baidu.com/ 2.Linux文件路径是斜杠 3.Windows文件浏览器用的是反斜杠,而斜杠是用在Dos命令中.如图,当我在命令行中输入cd D:/Progra,同时按下Tab键的时候,发现没有任何反应:而当我输入cd D:\

thinkphp5.0查询到的数据表中的路径是反斜杠导致无法正常显示图片怎么办?

添加到数据表中图片的路径有时会是反斜杠,这就导致了在url后面写路径的时候会识别不出来(不过src后面写路径就可以识别),所以就需要把路径中的反斜杠替换成正斜杠,代码如下: 1 $datu = Db::query('select images from think_ad where ad_position_id = 22'); 2 $str = ""; 3 foreach($datu as $v) 4 { 5 $str .= implode($v); 6 $str .= "|

Unix Shell中单引号、双引号字符、反斜杠、反引号的使用

在执行shell脚本的时候,shell将会对脚本中的行进行解释,然后执行:对于一些特殊处理的句子,我们可以使用引号或者反斜线来避免shell解释执行之.如下,当在命令行中输入:echo *child.sh env_variable father.sh param.sh profile.sh 125017.sh默认会将当前文件夹下的所有文件都打印出来,但我们需要的是输出一个“*”.可以以这样的方式让shell不去解释星号(*):echo "*"* 下面是shell引用类型--------

PHP关于反斜杠处理函数addslashes()和stripslashes()的用法

http://yangjunwei.com/a/589.html PHP自带的库函数 addslashes() 和 stripslashes() 都属于字符串处理类函数,作用正好相反: addslashes():对输入字符串中的某些预定义字符前添加反斜杠,这样处理是为了数据库查询语句等的需要.这些预定义字符是:单引号 (') ,双引号 (") ,反斜杠 (\) ,NULL. stripslashes():删除由 addslashes() 函数添加的反斜杠.该函数用于清理从数据库或 HTML 表单

php post get 繁体、日文、韩文时 自动添加 反斜杠 问题

做些二次开发项目,数据库.文件编码没法大规模的修改,比如二次开发一个日文系统,编码是JA16SJIS,$_POST或$_GET的信息中如果“申請”,得到的信息就会变成“申\請”,多出一个反斜杠! 先贴出整理的解决办法,在有需要的地方或配置文件中加入如下代码 if (get_magic_quotes_gpc()) {    function stripslashes_deep($value)    {        $value = is_array($value) ?        array_

Shell中单引号、双引号、反引号、反斜杠的区别

1. 单引号 ( '' ) # grep Susan phonebook Susan Goldberg 403-212-4921 Susan Topple 212-234-2343 如果我们想查找的是Susan Goldberg,不能直接使用grep Susan Goldberg phonebook命令,grep会把Goldberg和phonebook当作需要搜索的文件 # grep 'Susan Gold' phonebook Susan Goldberg 403-212-4921 当shel

反斜杠处理函数addslashes()和stripslashes()

addslashes():对输入字符串中的某些预定义字符前添加反斜杠,这样处理是为了数据库查询语句等的需要.这些预定义字符是:单引号 (') ,双引号 (") ,反斜杠 (\) ,NULL. stripslashes():删除由 addslashes() 函数添加的反斜杠.该函数用于清理从数据库或 HTML 表单中取回的数据.(若是连续二个反斜杠,则去掉一个,保留一个:若只有一个反斜杠,就直接去掉.)