gsub удаляет обратную косую черту и цифры из строки [duplicate]

Короткий вариант:

echo sh(script: 'ls -al', returnStdout: true).result
10
задан smci 7 April 2016 в 02:18
поделиться

3 ответа

[...] Если я хочу получить строку, содержащую 5 \, должен ли я писать 10 \ [...]

Да, вы должны. Чтобы записать одиночную \ в строке, вы пишете ее как "\\".

Это связано с тем, что \ является специальным символом, зарезервированным для escape символом который следует за ним. (Возможно, вы признаете \n как новую строку.) Также полезно, если вы хотите написать строку, содержащую один файл ". Вы записываете его как "\"".

Причина, по которой \\\str недействительна, заключается в том, что она интерпретируется как \\ (что соответствует одному \), за которым следует \s, что недействителен, поскольку «escape-код s» не имеет значения.

16
ответ дан aioobe 18 August 2018 в 19:56
поделиться

Обратите внимание, что удвоение обратных косых черт связано с тем, что вы вводите строку в командной строке, а строка сначала анализируется парсером R. Вы можете вводить строки по-разному, некоторые из которых не нуждаются в удвоении. Например:

> tmp <- scan(what='')
1: \\\\\str
2: 
Read 1 item
> print(tmp)
[1] "\\\\\\\\\\str"
> cat(tmp, '\n')
\\\\\str 
> 
6
ответ дан Greg Snow 18 August 2018 в 19:56
поделиться

Прочитайте этот раздел о символьных векторах.

По сути, в нем говорится, что при вводе символьных строковых литералов вы заключите их в пару кавычек ("или '). Внутри этих кавычек вы можете создавать специальные символы, используя символ \ в качестве escape-символа.

Например,\n обозначает новую строку или \ "можно использовать для ввода" без R мышления, это конец строки. Поскольку символ \ является escape-символом, вам нужен способ ввода фактического. Это делается с помощью \\. Escaping escape!

6
ответ дан zx8754 18 August 2018 в 19:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: