2016-04-18 3 views
-2

Я хочу удалить \n из строки, если она находится в строке. Я пробовал:Как проверить, есть ли n в строке

slashn = str(chr(92))+"n" 
if slashn in newString: 
     newerString = newString.replace(slashn,'') 
     print(newerString) 
else: 
    print(newString) 

Предположим, что NewString это слово, которое имеет \n в конце. Например. text\n.

Я также пробовал тот же код, кроме косой черты, равный "\\"+"n".

+0

Это почти наверняка Python, retagging. – 3442

+1

Вы ищете новую линию или обратную косую черту + 'n'? –

+5

Вы пытаетесь удалить символ новой строки ('\ n') или последовательность косой черты с буквой N (' \\ n')? Вы четко понимаете разницу между обоими? – 3442

ответ

0

Использование

string_here.rstrip('\n') 

Чтобы удалить символ новой строки.

+0

Это не сработает OP ожидает, BTW. – 3442

+0

Я вижу. Мне нужно было добавить персонажа, который нужно удалить. – Harry

+0

Похоже, что OP не хочет использовать символ новой строки, но буквально '\ n' (символ обратной косой черты плюс n символ) удаляется из строки. –

0

Попробуйте с strip()

your_string.strip("\n") # removes \n before and after the string 
+0

Похоже, что OP не хочет, чтобы символ новой строки, но буквальный символ '\ n' (символ обратной косой черты плюс n символ) удалялся из строки. –

1

Вы можете использовать полосу() строки. Или полоса ('\ n'). strip - встроенная функция строки. Пример:

>>> 
>>> 
>>> """vivek 
... 
... """ 
'vivek\n\n' 
>>> 
>>> """vivek 
... 
... """.strip() 
'vivek' 
>>> 
>>> """vivek 
... 
... \n""" 
'vivek\n\n\n' 
>>> 
>>> 
>>> """vivek 
... 
... \n""".strip() 
'vivek' 
>>> 

Посмотрите на help команды для строки встроенной функции strip, как это:

>>> 
>>> help(''.strip) 
Help on built-in function strip: 

strip(...) 
    S.strip([chars]) -> string or unicode 

    Return a copy of the string S with leading and trailing 
    whitespace removed. 
    If chars is given and not None, remove characters in chars instead. 
    If chars is unicode, S will be converted to unicode before stripping 

>>> 
+0

Похоже, что OP не хочет, чтобы символ новой строки, но буквальный символ '\ n' (символ обратной косой черты плюс n) удалялся из строки. –

0

Использование str.replace() но сырьевыми строковых литералов:

newString = r"new\nline" 
newerString = newString.replace(r"\n", "") 

Если вы поставите r перед кавычками, содержащими строковый литерал, он становится строковым литералом, который делает не обрабатывать символы обратной косой черты как специальные escape-последовательности.

Примера для уточнения сырья строковых литералов (выход за #> комментариев):

# Normal string literal: single backslash escapes the 'n' and makes it a new-line character. 
print("new\nline") 
#> new 
#> line 

# Normal string literal: first backslash escapes the second backslash and makes it a 
# literal backslash. The 'n' won't be escaped and stays a literal 'n'. 
print("new\\nline") 
#> new\nline 

# Raw string literal: All characters are taken literally, the backslash does not have any 
# special meaning and therefore does not escape anything. 
print(r"new\nline") 
#> new\nline 

# Raw string literal: All characters are taken literally, no backslash has any 
# special meaning and therefore they do not escape anything. 
print(r"new\\nline") 
#> new\\nline 
0

Если вы хотите, чтобы удалить строку из заканчивается строки, я хотел бы использовать .strip() , Если аргументы не заданы, он удаляет пробельные символы, в том числе новые строки (\ n).

Использование .strip():

if newString[-1:-2:-1] == '\n': #Test if last two characters are "\n" 
    newerString = newString.strip() 
    print(newerString) 
else: 
    print(newString) 

Another .strip() example (Using Python 2.7.9)

Кроме того, символ новой строки может просто быть представлена ​​как "\ п".

+0

Похоже, что OP не хочет, чтобы символ новой строки, но буквальный символ '\ n' (символ обратной косой черты плюс n) удалялся из строки. –

Смежные вопросы