Я довольно новичок в регулярных выражениях. Я хочу очистить строку от неалфавитных символов, которые расположены в начале и в конце строки. Например, если у меня есть следующая строка: {{Х0}}

Я хотел бы получить: {{Х0}}

3
Alan 7 Июл 2019 в 12:30

3 ответа

Лучший ответ

Вы можете использовать регулярное выражение:

^[^a-zA-Z]+|[^a-zA-Z]+$

[^a-zA-Z] означает «не a-z или A-Z». ^ и $ относятся к началу и концу строки соответственно.

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

>>> re.sub(r"^[^a-zA-Z]+|[^a-zA-Z]+$", "", ",. Hello, How are you?")
'Hello, How are you'
2
Sweeper 7 Июл 2019 в 09:42

Вы можете использовать функцию strip, чтобы удалить символы из начала и конца строки

import string
nonalphabet= "".join([c for c in string.printable if c not in string.ascii_letters])
s = ".,how are you ?"
print (s.strip(nonalphabet))

Выдаст how are you

1
Uri Goren 7 Июл 2019 в 09:36

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

(\w|\s)+

Что означает любой character(\w) или space(\s) хотя бы с one-time repeat(+).

< EM> Demo

2
Hamed Ghasempour 7 Июл 2019 в 09:38