我有一个javascript变量从遗留系统传入反斜杠到正斜杠:
'/46\465531_Thumbnail.jpg'
我试图转换成这个:
'/46/465531_Thumbnail.jpg'
.
没有办法解决遗留系统上的问题.
这是我在IE8浏览器上运行的命令:
javascript:alert("/46\465531_Thumbnail.jpg".replace(/\\/g,"/"));
Run Code Online (Sandbox Code Playgroud)
作为回应我得到:
---------------------------
Message from webpage
---------------------------
/46&5531_Thumbnail.jpg
---------------------------
OK
---------------------------
Run Code Online (Sandbox Code Playgroud)
实际上我只想翻译成 '/46/465531_Thumbnail.jpg'
怎么了?
我正在使用R将字符串写入文件:
> x1="\\str"
> x2="\\\str"
Error: '\s' is an unrecognized escape in character string starting "\\\s"
> x2="\\\\str"
> write(file='test',c(x1,x2))
Run Code Online (Sandbox Code Playgroud)
当我打开名为的文件时test
,我看到了这个:
\str
\\str
Run Code Online (Sandbox Code Playgroud)
如果我想得到一个包含5个反斜杠的字符串,我应该写10个反斜杠,像这样吗?
x="\\\\\\\\\\str"
Run Code Online (Sandbox Code Playgroud) 我有一个路径,我想添加一些名为test的新子文件夹.请帮我看看如何做到这一点.我的代码是:
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
Console.WriteLine(path+"\test");
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:"c:\ Users\My Name\Pictures\test"
请帮我找出正确的方法.
我正在尝试为一些同事制作解析"应用程序" 的本地 xml文件,并且我正在使用当前函数来检索文件:
function ShowFolderFileList(folderspec) {
var fso, f, f1, fc, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(folderspec);
fc = new Enumerator(f.files);
s = "";
for (; !fc.atEnd(); fc.moveNext()) {
var pathString = fc.item();
$("#test").append(pathString + "<br />");
}
}
Run Code Online (Sandbox Code Playgroud)
这个函数的问题是它返回一个类似于的字符串:
C:\Users\SomeUser\Desktop\cool\Archief\CDATA1.xml
Run Code Online (Sandbox Code Playgroud)
我需要替换反斜杠以转换整个字符串的斜杠.这该怎么做?
我尝试了替换方法:
pathString.replace(/\\/g, "/")
Run Code Online (Sandbox Code Playgroud)
但它似乎没有做到这一点.
你能帮助我吗?
以下脚本产生了意外的输出:
printf "escaped slash: \\ \n"
printf "2 escaped slashes: \\\\ \n"
printf "3 escaped slashes: \\\\\\ \n"
printf "4 escaped slashes: \\\\\\\\ \n"
Run Code Online (Sandbox Code Playgroud)
在Ubuntu 14下作为bash脚本运行,我看到:
escaped slash: \
2 escaped slashes: \
3 escaped slashes: \\
4 escaped slashes: \\
Run Code Online (Sandbox Code Playgroud)
呃.. 什么?
背景
根据我的经验,当我的ubuntu工作站在具有活动目录的域上配置时,为我创建的用户名是根据以下模式.
DOMAIN_NAME \用户名
在linux上使用apache 的userdir扩展将需要在URL中使用用户名才能访问主目录中的public_html.
问题A:
Chrome将URL中的所有反斜杠" \ "字符转换为正斜杠" / ",结果网址变为完全不同,并且始终显示" 未找到"结果.
另一方面, Firefox 不会将斜杠转换为正斜杠,因此Web服务器会向目标目标提供http请求.
Common solution is to encode back slash in %5C.
Run Code Online (Sandbox Code Playgroud)
问题B:
如果我们在CSS @import构造中使用类似的路径(包含\ in path),则通过报告404错误而导致css文件作为HTTP Get Request的导入过程失败,并且404错误中报告的URL错过了\ altogether 的存在.这意味着在从中调用GET请求之前,会从URL中删除\.
这种行为在Firefox和Chrome中很常见.但他们有不寻常的解决方案
Firefox需要转义反斜杠才能在css导入过程中工作.
@import url(" http:// localhost/~domain_name \\ user_name/path/to/css ");
Chrome通常需要编码的反斜杠解决方案.
@import url(" http:// localhost/~domain_name%5Cuser_name/path/to/css ");
当我在python应用程序(例如python shell)中时,按下Ctrl\
结果
>>> Quit (core dumped)
Run Code Online (Sandbox Code Playgroud)
为什么这样,我怎么能避免这种情况?如果我Ctrl\
偶然按下应用程序,那么非常不方便.
我使用-replace来改变从源到目的地的路径.但是我不知道如何处理\字符.例如:
$source = "\\somedir"
$dest = "\\anotherdir"
$test = "\\somedir\somefile"
$destfile = $test -replace $source, $dest
Run Code Online (Sandbox Code Playgroud)
执行此操作后,$ destfile将设置为
"\\\anotherdir\somefile"
Run Code Online (Sandbox Code Playgroud)
为避免结果中的三重反斜杠,这样做的正确方法是什么?
例如:
t = str.encode(msg)
print(t)
Run Code Online (Sandbox Code Playgroud)
我收到双斜杠,如下所示:
b'\\xda\\xad\\x94\\xb4\\x0bg\\x92]R\\x9a1y\\x9d\\xed\\x04\\xd5\\x8e+\\x07\\xf8\\x03\\x1bm\\xd6\\x96\\x10\\xca80\\xe26\\x8a
Run Code Online (Sandbox Code Playgroud)
但是,我想得到的结果是:
b'\xda\xad\x94\xb4\x0bg\x92]R\x9a1y\x9d\xed\x04\xd5\x8e+\x07\xf8\x03\x1bm\xd6\x96\x10\xca80\xe26\x8a'
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。
反引号内的反斜杠(\)以非显而易见的方式处理:
Run Code Online (Sandbox Code Playgroud)$ echo "`echo \\a`" "$(echo \\a)" a \a $ echo "`echo \\\\a`" "$(echo \\\\a)" \a \\a
但是,FAQ并未分解导致这种差异的解析规则。man bash
我发现的唯一相关报价是:
当使用旧式的反引号形式的替换时,反斜杠保留其字面意思,除非后面是$,`或。
The "$(echo \\a)"
and "$(echo \\\\a)"
cases are easy enough: Backslash, the escape character, is escaping itself into a literal backlash. Thus every instance of \\
becomes \
in the output. But I'm struggling to understand the analogous logic for the backtick cases. What is the underlying rule and how does the observed output follow …