标签: single-quotes

为什么在过去几年中JS文件中更常用单引号?

为什么会出现一种趋势,为人们使用单引号'周围string,而不是双引号"书写时?是否有任何minifcation掉毛下面的工具//周围有双引号的惯例string和周围单一单引号char和使用更好的缩小/绒毛检查?反之亦然?它是来自还是的保留,其中双引号字符串执行单引号字符串更昂贵?

我发现使用双引号通常倾向于创建gzip更好的文件(通过线路传输),因为双引号更常出现,这对于霍夫曼编码更好.

javascript string lint double-quotes single-quotes

2
推荐指数
1
解决办法
853
查看次数

为什么q/\\ a /等于q /\a /?

以下示例打印"SAME":

if (q/\\a/ eq q/\a/) {
    print "SAME\n";
}
else {
    print "DIFFERENT\n";
}
Run Code Online (Sandbox Code Playgroud)

我理解这与文档一致.但我认为这种行为是不可取的.是否需要在单引号字符串中逃避反弹lilteral?如果我想要2个反冲,我需要指定4; 这似乎不方便.

Perl不应该检测反斜杠是否作为转义字符?例如,当反斜杠不在分隔符之前时,应将其视为文字; 如果是这种情况,我不需要3个反斜杠表示两个,例如,

q<a\\b>
Run Code Online (Sandbox Code Playgroud)

代替

q<a\\\b>.
Run Code Online (Sandbox Code Playgroud)

perl backslash single-quotes

2
推荐指数
2
解决办法
144
查看次数

如何在动态SQL中转义单引号

我在SQL Server上有以下查询,其中一些值存储在先前计算的变量中:

SET @Command = N'INSERT INTO Products (Id
                                ,Region
                                ,Name
                                ,Category
                                ,CreatedBy
                                ,CreatedOn
                                ,) SELECT ' + @Id + ',
                                            Region, 
                                            ''' + @ProductName + ''', 
                                            Category,
                                            CreatedBy,
                                            CreatedOn FROM ' + @ProductTable + ' 
                                                WITH (NOLOCK) WHERE Id IS NOT NULL';

    EXEC(@Command)
Run Code Online (Sandbox Code Playgroud)

它运行正常,除非@ProductName的值包含引号(例如Jim的Product),在这种情况下,我将收到以下错误:字符串后的引号未封闭

有没有办法在这样的动态查询中处理变量中的单引号,其中插入的所选值之一(在这种情况下为@ProductName)直接是要插入的值,而不是源表上的实际列名需要检索其值以进行插入?

sql sql-server dynamicquery single-quotes

2
推荐指数
1
解决办法
3424
查看次数

为什么从 ' 更改为 " 会影响这种单行的行为?

为什么只是简单地将我的单行'改为而不是"影响代码的行为?第一行代码产生了预期的结果,第二行代码给出了(给我!)一个意想不到的结果,打印出一个意想不到的数组引用。

$ echo "puke|1|2|3|puke2" | perl -lne 'chomp;@a=split(/\|/,$_);print $a[4];'
puke2
$ echo "puke|1|2|3|puke2" | perl -lne "chomp;@a=split(/\|/,$_);print $a[4];"
Run Code Online (Sandbox Code Playgroud)

这是 Perl 版本:

$ perl -v

This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi

ARRAY(0x1f79b98)
Run Code Online (Sandbox Code Playgroud)

shell perl double-quotes single-quotes

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

将变量传递给 stdin 上的命令时可以保留单引号吗?

例子:

 $ foo="text with 'single quotes'"
 $ echo $foo
Run Code Online (Sandbox Code Playgroud)

给我

 text with 'single quotes'
Run Code Online (Sandbox Code Playgroud)

这是我想要的输出,但我想传递$foo具有相同结果的标准输入。类似于以下之一:

 $ xargs echo <<< $foo

 $ echo $foo | xargs echo
Run Code Online (Sandbox Code Playgroud)

这两个都给我

 text with single quotes
Run Code Online (Sandbox Code Playgroud)

有没有办法保留单引号而不控制 foo 的内容?

我正在寻找一种无论命令如何都有效的解决方案,我选择它是xargs echo因为我认为它简单地显示了行为。该解决方案可能不存在,但如果有人有任何提示,将不胜感激!

bash stdin single-quotes

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

在Ruby字符串中转义',而不是为了插入MySQL而转义\

我有一个Ruby形式的字符串: "Henry's string"

每一个gsubtr我试着让我形成像"Henry\\'s string","Henry\\\\'s string"等等.

这些都是逃避反斜杠,但留给我一个未转义的单引号.

我试过了:

  • "Henry's string".gsub("'","\\\\'") 有不同数量的\

  • "Henry's string".gsub(/'/) {|x| "\\\\#{x}"} 再次以不同的数量

  • "Henry's string".gsub(/'/) {|x| "\\#{x}"}.gsub(/\\/) {|x| "#{x}"}

我想我需要一个奇数\来完全逃脱'(为了加载到MySQL),但我无法弄清楚如何得到这个.

ruby mysql escaping gsub single-quotes

0
推荐指数
1
解决办法
104
查看次数

从bash中的“key1='val1' key2='val2'”字符串中解析变量而不使用eval

我有一个特定于项目的命令,它以以下形式生成输出:

Parameter1='value1' Parameter2='Value2' ... #变量的单引号值。

但我想明确分配该值并需要打印必须显示相应值的参数。

这里xtc_cmd get是项目特定的 cmd

root@renway:~# FOO=`xtc_cmd get lan_ifname lan_ipaddr lan_netmask`
root@renway:~#
root@renway:~# echo $FOO
SYSCFG_lan_ifname='br1' SYSCFG_lan_ipaddr='10.0.0.1' SYSCFG_lan_netmask='255.255.255.0'
root@renway:~#
root@renway:~# echo $SYSCFG_lan_ifname

root@renway:~# echo $SYSCFG_lan_ipaddr

root@renway:~# echo $SYSCFG_lan_netmask
Run Code Online (Sandbox Code Playgroud)

但是,在变量打印它们的值之后,我尝试了“ eval $FOO ”。由于安全原因,我想跳过'eval'。

分享脚本执行的输出:

root@renway:~# /tmp/test.sh
++ xtc_cmd get lan_ifname lan_ipaddr lan_netmask
+ FOO='SYSCFG_lan_ifname='\''br1'\''
SYSCFG_lan_ipaddr='\''10.0.0.1'\''
SYSCFG_lan_netmask='\''255.255.255.0'\'''
+ echo 'SYSCFG_lan_ifname='\''br1'\''' 'SYSCFG_lan_ipaddr='\''10.0.0.1'\''' 'SYSCFG_lan_netmask='\''255.255.255.0'\'''
SYSCFG_lan_ifname='br1' SYSCFG_lan_ipaddr='10.0.0.1' SYSCFG_lan_netmask='255.255.255.0'
Run Code Online (Sandbox Code Playgroud)

如何实际分配值并打印这些变量。

输入感兴趣的字符串

FOO='SYSCFG_lan_ipaddr='\''10.0.0.1'\'' SYSCFG_sysdate='\'''\''$(date>> /tmp/date.txt)0'\'''\'' SYSCFG_lan_pd_interfaces='\''brlan0 brlan19 brlan20'\'''
Run Code Online (Sandbox Code Playgroud)

预期输出:

foo_SYSCFG_lan_ipaddr=10.0.0.1
foo_SYSCFG_sysdate='$(date>> /tmp/date.txt)0' #single quoted value
foo_SYSCFG_lan_pd_interfaces=brlan0 brlan19 brlan20 #whitespace separated string …
Run Code Online (Sandbox Code Playgroud)

linux bash shell variable-expansion single-quotes

0
推荐指数
1
解决办法
165
查看次数

为什么 `python -c 'print('howdy')'` 会产生错误(在 zsh 中),而 `python -c 'print("howdy")'` 不会?

在 中zsh,当我python -c 'print('howdy')'从命令行执行时,它会产生以下错误。

Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'howdy' is not defined
Run Code Online (Sandbox Code Playgroud)

但是,这python -c 'print("howdy")'不会,而是产生我期望的输出,即howdy(作为字符串)发送到stdout?

我认为 python 在单引号或双引号上是不可知的

zsh double-quotes single-quotes

-1
推荐指数
1
解决办法
45
查看次数

有没有办法在C#中替换单引号和双引号,就像你可以在javascript中一样?

在javascript我可以写

    var s = 'He said "Hello" to me';
    or 
    var s = "don't be sad";
Run Code Online (Sandbox Code Playgroud)

换句话说,如果我想在字符串中使用双引号,我可以使用单引号声明字符串.如果我想在字符串中使用单引号,我可以使用双引号声明字符串.这非常方便.有人找到了在C#中做类似事情的方法吗?

单引号很简单,c#已经可以嵌入单引号.至于双引号,似乎有两种常见的选择.

  1. 使用反斜杠转义字符

    var s = "He said \"Hello\" to me";
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用单引号并用双引号替换它们

    var s = "He said 'Hello' to me";
    s = s.Replace("'","\"");
    
    Run Code Online (Sandbox Code Playgroud)

我可以选择2,但更好更好.

c# string double-quotes single-quotes

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