Как бы сделать это обычной строкой без косой черты?ruby удалить обратную косую черту из строки
у меня есть:
"3e265629c7ff56a3a88505062dd526bd\""
Я хочу:
"3e265629c7ff56a3a88505062dd526bd"
Как бы сделать это обычной строкой без косой черты?ruby удалить обратную косую черту из строки
у меня есть:
"3e265629c7ff56a3a88505062dd526bd\""
Я хочу:
"3e265629c7ff56a3a88505062dd526bd"
Что у вас есть:
"3e265629c7ff56a3a88505062dd526bd\""
эквивалентно:
'3e265629c7ff56a3a88505062dd526bd"'
Так, чтобы удалить, что:
string.tr!('"', '')
Помните все специальные символы начинаются с обратной косой черты. Это включает в себя не только такие вещи, как newline \n
или linefeed \r
, но и котировочный знак "
или обратная косая черта \\
.
Просто из любопытства, почему вы используете 'tr', а не' sub' или 'gsub'? – spickermann
@spickermann Это потому, что 'tr' действительно быстро удаляет или переназначает символы. 'gsub' даст вам тот же результат, но он включает компиляцию и применение регулярного выражения и не может соответствовать простоте или скорости' tr'. Для одного вызова разница не имеет значения, но внутри циклов есть огромная прибыль от 'tr'. – tadman
Спасибо, знал это. – spickermann
Как это?
s = "3e265629c7ff56a3a88505062dd526bd\""
s[/\w+/]
# => "3e265629c7ff56a3a88505062dd526bd"
Не так много людей знают о 'String # []' с регулярным выражением, поэтому это интересно. – tadman
str = "3e265629c7ff56a3a88505062dd526bd\""
str.gsub(%r{\"}, '')
=> "3e265629c7ff56a3a88505062dd526bd"
Еще один способ "3e265629c7ff56a3a88505062dd526bd\"".delete ?"
Если вы хотите удалить все, кроме букв и цифр, которые вы можете использовать функцию «тр».
Например:
"3e265629c7ff56a3a88505062dd526bd\"".tr('^A-Za-z0-9','')
Эта функция заменяет все, кроме букв и цифр с строка без символов. Here является ссылкой на функцию.
Надеюсь, это сработает для вас.
Ruby's String#[]
- твой друг. Начиная с:
foo = "3e...bd\""
Это альтернативные способы получения значения без задней встроенной цитаты:
# delete it
foo[-1] = ''
foo['"'] = ''
foo[/"$/] = ''
Или:
# skip it
foo[0..-2]
ли Вы в виду не обратных косой черты и не двойных кавычек в строка? Поскольку обратная косая черта указывает, что следующая двойная кавычка является частью строки. Но ваш пример удаляет заключительную двойную кавычку из строки. – lurker
Слэш - это '/', а обратная косая черта - \. Разница может показаться академической, но это важно, поскольку у них есть совершенно другое значение в Ruby. – tadman