Как вырезать не алфавитно-цифровой префикс и суффикс из строки в Python? - PullRequest
0 голосов
/ 20 марта 2019

Как вырезать все символы из начала и конца строки, которые не являются буквенно-цифровыми?

Например:

print(clearText('%!_./123apple_42.juice_(./$)'))
# => '123apple_42.juice'

print(clearText('  %!_also remove.white_spaces(./$)   '))
# => 'also remove.white_spaces'

Ответы [ 2 ]

3 голосов
/ 20 марта 2019

Вы можете использовать этот шаблон: ^[^a-zA-Z0-9]+|[^a-zA-Z0-9]+$

Объяснение:

^[^a-zA-Z0-9] - сопоставить один или несколько не алфавитно-цифровых символов в начале строки (спасибо ^)

[^a-zA-Z0-9]$ - соответствует одному или нескольким не буквенно-цифровым символам в конце строки (благодаря $)

| означает чередование, поэтому оно соответствует не буквенно-цифровой строкесимволов в начале или в конце

Демо

Тогда достаточно заменить совпадения на пустую строку.

2 голосов
/ 20 марта 2019

Этот парень перебирает все между буквенно-цифровыми символами.

import re

def clearText(s):
    return re.search("[a-zA-Z0-9].*[a-zA-Z0-9]", s).group(0)

print(clearText("%!_./123apple_42.juice_(./$)"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...