Python строка усечения регулярного выражения специальным символом с одним начальным пробелом - PullRequest
2 голосов
/ 17 января 2020

Мне нужно усечь строку специальными символами '-', '(', '/' с одним начальным пробелом, то есть '-', '(', '/'.

как это сделать ?

patterns=r'[-/()]'    
    try: 
        return row.split(re.findall(patterns, row)[0], 1)[0]
    except: 
        return row

приведенный выше код подобрал все специальные символы, но без начального пробела.

patterns=r'[s-/()]'

этот код не работает.

Ответы [ 3 ]

3 голосов
/ 17 января 2020

Попробуйте этот шаблон patterns=r'^\s[-/()]' или удалите ^ в зависимости от ваших потребностей.

0 голосов
/ 20 января 2020

Похоже, что вы хотите получить часть строки до первого появления шаблона \s[-(/].

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

return re.sub(r'\s[-(/].*', '', row)

Этот код вернет часть row строка без всех символов после первого появления пробела (\s), за которым следуют -, ( или / ([-(/]).

См. демонстрационную версию regex .

0 голосов
/ 17 января 2020

Пожалуйста, попробуйте этот шаблон patterns = r'\s+-|\s\/|\s\(|\s\)'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...