标签: quotes

(嵌套|双|简单)引号的正确用法是什么?

我相信这个问题对你们中的一些人来说似乎很愚蠢,但我在这里要学习.
这些假设对大多数语言都是正确的吗?
编辑:好的,我们假设我在谈论Perl/Bash脚本.

'Single quotes'
Run Code Online (Sandbox Code Playgroud)

=>根本没有解释(例如'$'或任何元字符将被视为字符并将在屏幕上打印)

"Double quotes" 
Run Code Online (Sandbox Code Playgroud)

=>可变解释

为了更准确地说明我的问题,我正在编写一些shell脚本(其中引号有时候会很麻烦),并写下这一行:

CODIR=`pwd | sed -e "s/$MODNAME//"`
Run Code Online (Sandbox Code Playgroud)

如果我在我的sed中使用单引号,我的模式将是'$ MODNAME',对吧?(而不是$ MODNAME的实际值,在这种特殊情况下是'alpha')

我有另一个问题,在回声中有一个awk:

USAGE=`echo -ne "\
Usage : ./\`basename $0\` [-hnvV]\n\
\`ls -l ${MODPATH}/reference/ | awk -F " " '$8 ~ /\w+/{print "> ",$8}'\`"`
Run Code Online (Sandbox Code Playgroud)

我花了一些时间调试那个.我得出结论,反引号被转义,以便解释器不会"拆分"命令(并在«basename»之前停止).在awk命令中,'$ 8'被awk成功解释,因此不是shell.如果我想使用shell变量怎么办?我会写awk -F"\"$ MY_SHELL_VAR \""吗?因为$ MY_SHELL_VAR是,将被awk解释,不会吗?

不要犹豫,添加任何有关引用或反引号的信息!

谢谢 !:)

bash shell quotes perl

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

bash:变量和引号中的引号

我想在 bash 中设置一个名为 test_var 的变量基本上,我希望 echo test_var 输出:

%let output="file_20120601.csv";
Run Code Online (Sandbox Code Playgroud)

其中 20120601 是一个变量。我正在尝试使用以下方法来做到这一点:

test_var='%let output="file_$1.csv";'
echo test_var
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为 $1 不被解释为变量,而是被解释为字面的 $1

有谁知道我如何修改它以使其执行我想要的操作?

variables bash quotes escaping

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

如何在字符串中只添加1"

这可能是一个非常简单的问题,但事实并非如此.我想知道如何只在一个字符串示例中放置一个"

 Dim eg as String
 eg = ""W"
Run Code Online (Sandbox Code Playgroud)

它似乎没有用.是否有任何特殊字符,因为我需要为我的VB添加代码隐藏.

vb.net quotes

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

鉴于强大的宏系统,现代Scheme中的`quote`和`quasiquote`是多余的?

Modern Scheme(及其后代像Racket)具有非常强大的卫生宏系统.在我看来,quotequasiquote定义(不卫生)宏已经失去了他们的历史地位(如Common Lisp中仍然做,如果我没有搞错吧)卫生系统的宏.其实在语言报告,quotequasiquote仅作为构建数据的便捷方式,特别列出.如果她能够忍受乏味,那么人们可以没有它们.例如,(quote (+ 1 2))可以重写为(list (quote +) 1 2),(quasiquote (+ (unquote (- 2 1)) 2))可以重写为(list (quote +) (- 2 1) 2).

现在假设我们将符号的新原始类型引入Scheme:以大写字母开头的标识符是符号,否则是变量.所以X意味着符号x,然后上面的例子可以写成(list Plus 1 2)(list Plus (- 2 1) 2).(我们假设它Plus代表符号+.)现在我们可以说quote并且quasiquote是多余的吗?或者我会错过什么?

编辑:

  1. eval在一些罕见的情况下似乎仍然有用:在SCHEME中进行EVAL

  2. 澄清问题.

quotes scheme eval racket

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

如何用Java替换'空字符串'

如何在Java中用空字符串替换单引号'.我试过以下但似乎没有工作.

String data="Sid's den";
data.replace("'", "");
data.replaceAll("'", "");
Run Code Online (Sandbox Code Playgroud)

提前致谢.非常感谢任何帮助.(输出应该是:Sids den)

谢谢你的回复.我想我应该更清楚我的问题.基本上我从表中获取特殊字符,并且我们必须从同一个表中替换它的值.这是代码片段:

query = "select spl_char, replace_with from entcon_splchars";
ptsmt = DBConnector.sqlConnection.prepareStatement(query);
rs = ptsmt.executeQuery();

while (rs.next()) {
        if(data.contains(rs.getString("spl_char"))){
          data = data.replace(rs.getString("spl_char"),rs.getString("replace_with"));
            }
         }
Run Code Online (Sandbox Code Playgroud)

所以在数据中我们有特殊的字符'然后我面临nullpointer异常.请建议如何继续这个?

java quotes replace

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

Perl qq和下划线

所以我有两个变量

$x = q(foo);
$y = q(bar);
Run Code Online (Sandbox Code Playgroud)

我的目标是在第三个变量中使用它们,它们之间有下划线即foo_bar.有很多方法可以做到这一点,但我想使用qq

所以

$z = qq($x_$y);
Run Code Online (Sandbox Code Playgroud)

这会产生以下错误

Global symbol "$x_" requires explicit package name at test.pl line 45.
Execution of C:\test.pl aborted due to compilation errors.
Run Code Online (Sandbox Code Playgroud)

所以我不得不使用大括号和变量x来使它工作

$z = qq(${x}_$y);
Run Code Online (Sandbox Code Playgroud)

为什么下划线不起作用qq?在这种情况下,为什么我需要大括号?

string quotes perl

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

解析替换引号

我正在尝试解析一个文本文件,以便在python中对它进行一些统计.为此,我想用标记替换一些标点符号.这种令牌的一个例子是终止句子(.!?成为<EndS>)的所有标点符号.我设法使用正则表达式做到这一点.现在我正在尝试解析引号.因此,我认为,我需要一种方法来区分开盘报价和收盘价.我正在逐行读取输入文件,我无法保证报价将是平衡的.

例如:

 "Death to the traitors!" cried the exasperated burghers.
 "Go along with you," growled the officer, "you always cry the same thing over again. It is very tiresome."
Run Code Online (Sandbox Code Playgroud)

应该变得像:

 [Open] Death to the traitors! [Close] cried the exasperated burghers.
 [Open] Go along with you, [Close] growled the officer, [Open] you always cry the same thing over again. It is very tiresome. [Close]
Run Code Online (Sandbox Code Playgroud)

是否可以使用正则表达式执行此操作?有没有更容易/更好的方法来做到这一点?

python regex quotes parsing nlp

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

在"命令存在"中回显是否总是需要在Windows命令提示符下使用双引号?

我试图找到一个文件的存在,然后在命令提示符下打印出如下目录:

C:\> if exist "C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" (echo C:\Program Files(x86)\Microsoft Visual Studio 14.0\)
Run Code Online (Sandbox Code Playgroud)

这失败并出现以下错误:

\Microsoft was unexpected at this time.
Run Code Online (Sandbox Code Playgroud)

如果我重写我的命令

C:\> if exist "C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" (echo "C:\Program Files(x86)\Microsoft Visual Studio 14.0\")
Run Code Online (Sandbox Code Playgroud)

这打印:

"C:\Program Files(x86)\Microsoft Visual Studio 14.0\"
Run Code Online (Sandbox Code Playgroud)

我使用了这个命令的输出,并且它周围的引号引起了一些问题.有什么办法可以在不添加引号的情况下回应这个问题吗?

quotes cmd batch-file

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

避免R函数粘贴生成引号的反斜杠

我试图得到两个包含引号("")的字符串组合为字符/字符串向量或R函数粘贴,所以我可以将结果插入openxlsx包中writeFormula的参数x .

一个例子是这样的

paste('HYPERLINK("file)',':///"&path!$C$1&TRIM(MID(CELL("filename",B',sep="")
Run Code Online (Sandbox Code Playgroud)

我希望它能产生这样的结果

HYPERLINK("file:///"&path!$C$1&TRIM(MID(CELL("filename",B
Run Code Online (Sandbox Code Playgroud)

但它实际上产生的结果是在":"前面加一个反斜杠:

[1] "HYPERLINK(\"file):///\"&path!$C$1&TRIM(MID(CELL(\"filename\",B"
Run Code Online (Sandbox Code Playgroud)

我已经搜索了许多可能的解决方案,例如用cat替换paste或者在paste之前添加noquote函数,但输出不是字符向量.像toString或as.character这样的函数可以将这些结果转换为字符串,但反斜杠也会返回.

非常感谢任何帮助.谢谢.

quotes r paste

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

Perl DBD::MySQL 执行不支持限制关键字后的字符串参数。始终被视为数字

我们最近使用最新的 DBI MySQL、Perl 等设置了一个新操作系统。

这种模式发现了我们的几个应用程序,并且在安装在新操作系统上时被破坏了。

my $sth = $dbh->prepare('select null colname, null colname2 limit 0'
        . ' union all select x, y from tbl where col like ?'
        . ' union all select z, a from tbl2 where col like ?');
$sth->execute('%test%', '%test%') or die ...;
Run Code Online (Sandbox Code Playgroud)

该错误是 MySQL 语法错误。我们已经确定了参数引用方式中的问题。

在上面的例子中,它在 MySQL 中是这样解析的。

select null colname, null colname2 limit 0
union all select x, y from tbl where col like 
union all select z, a from tbl2 where col like 
Run Code Online (Sandbox Code Playgroud)

但是,如果 …

mysql quotes perl sanitization limit

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

标签 统计

quotes ×10

perl ×3

bash ×2

batch-file ×1

cmd ×1

escaping ×1

eval ×1

java ×1

limit ×1

mysql ×1

nlp ×1

parsing ×1

paste ×1

python ×1

r ×1

racket ×1

regex ×1

replace ×1

sanitization ×1

scheme ×1

shell ×1

string ×1

variables ×1

vb.net ×1