小编VxJ*_*nxV的帖子

分号作为URL查询分隔符

虽然强烈建议(W3C源,通过维基百科)Web服务器支持分号作为URL查询项的分隔符(除了&符号),但似乎通常不会遵循.

例如,比较

        http://www.google.com/search?q=nemo & OE = UTF-8

        http://www.google.com/search?q=nemo ; OE = UTF-8

结果.(在后一种情况下,分号是,或者在撰写本文时,被视为普通的字符串字符,就像网址是:http://www.google.com/search?q = nemo %3B oe = utf-8)

虽然我尝试了第一个URL解析库,但表现良好:

>>> from urlparse import urlparse, query_qs
>>> url = 'http://www.google.com/search?q=nemo;oe=utf-8'
>>> parse_qs(urlparse(url).query)
{'q': ['nemo'], 'oe': ['utf-8']}
Run Code Online (Sandbox Code Playgroud)

接受分号作为分隔符的当前状态是什么,哪些是潜在的问题或一些有趣的注释?(从服务器和客户端的角度来看)

url webserver parsing http query-string

51
推荐指数
3
解决办法
3万
查看次数

是否可以在一次操作中应用两个匹配的模式转换?

我有一个填充了文件名和路径的bash变量:

SONG="~/Music/Mine/Cool Title Bro.flac"
Run Code Online (Sandbox Code Playgroud)

在我尝试使标记变得更加容易的过程中,我对变量应用了一些转换以隔离标题:

echo "${SONG#\~/Music/Mine/}" # which prints: Cool Title Bro.flac
Run Code Online (Sandbox Code Playgroud)

我知道也可以删除后缀${SONG%%.flac}.

但是,是否可以在单个操作中删除前缀和后缀?

这个:

${SONG#\~/Music/Mine/%%.flac}
Run Code Online (Sandbox Code Playgroud)

大概是因为它试图将文字%%.flac作为前缀的一部分进行匹配.反过来不起作用(%%.flac#~/[...]),我甚至疯了似试

${${SONG#~/Music/Mine/}%%.flac}
Run Code Online (Sandbox Code Playgroud)

这也行不通.

这可能是我工程过度工程的一个主要例子,但是如果有办法做到这一点并且我还没有弄清楚它会很好.

bash shell

7
推荐指数
1
解决办法
130
查看次数

在Chrome中调试用户脚本的方法

我尝试对用户脚本进行一些修改以使其能够在Chrome下运行,但是当我将其拖到Chrome的窗口中进行安装时,会弹出一个对话框并显示"无效的脚本标题".

我尝试使用开发人员工具和内置的Javascript控制台来调试发生的任何错误,但似乎没有任何内容列出任何信息.

Console.app 没有列出任何有意义的内容,除了我已经知道的相同错误消息.

[0x0-0x2d02d] .com.google.Chrome:[346:1547:16686819618022:错误:extension_error_reporter.cc(55)]扩展错误:无效的脚本标头.

如何合理地调试此错误消息并找出标头不正确的内容?

我在开发者频道上使用Chrome 15.0.861.0,在OS 10.7 Lion下.

userscripts google-chrome-extension

6
推荐指数
1
解决办法
5742
查看次数

为什么我无法指定包含bash数组变量长度的序列?

我正在编写一个脚本,通过一系列目录查看文件是否存在,找到后,将其推送到目录堆栈中pushd.这个dirs命令非常令人讨厌,我偶然发现了它的bash变量形式的内容,$DIRSTACK

$DIRSTACK是堆栈中的目录数组.它始终保证有1个条目,当前工作目录,然后推送目录.

我试图迭代目录列表,但似乎无法让for-loop接受我试图自动生成的序列长度:

for i in {1..${#DIRSTACK[*]}}; do
  echo ${DIRSTACK[$i]}
done
Run Code Online (Sandbox Code Playgroud)

执行时,bash失败并出现以下错误:

line 72: {1..2}: syntax error: operand expected (error token is "{1..2}")
Run Code Online (Sandbox Code Playgroud)

我老实说难倒,因为我已经for i in {1..5}多次手动编写脚本而没有问题,并且给出了错误消息,似乎数组项扩展的数量正如我想要的那样工作.

为什么会出现此错误?

bash shell

3
推荐指数
1
解决办法
501
查看次数