Удалите da sh в зависимости от количества символов - PullRequest
0 голосов
/ 13 июля 2020

Как удалить da sh в зависимости от количества символов после и перед ним?

Мой код:

1:

re.sub(r"(\S)\-", r'\1 ', 'test  10  MF-MT this FOR test')

Вывод : test 10 MF MT this FOR test

Здесь я удалил da sh как мне нужно

2:

re.sub(r"(\S)\-", r'\1 ', 'test  10  M-M this FOR test')

Вывод: test 10 M M this FOR test

Но, как вы можете видеть здесь, я не хочу удалять da sh, поэтому мне нужно указать два символа после и перед da sh, чтобы удалить его.

Я пробовал что-то вроде этого но это не сработало

re.sub(r"(\S).{2}\-.{2}", r'\1 ', 'test  10  M-M this FOR test')

Любая помощь?

1 Ответ

2 голосов
/ 13 июля 2020

Используйте просмотр назад и вперед:

(?<=\S\S)-(?=\S\S)

Чтобы сопоставить da sh (дефис), которому предшествуют и за которым следуют ровно 2 непробельных символа.

Демо RegEx

Код:

>>> import re
>>> reg = re.compile(r'(?<=\S\S)-(?=\S\S)')

>>> reg.sub(' ', 'test  10  MF-MT this FOR test')
'test  10  MF MT this FOR test'

>>> reg.sub(' ', 'test  10  M-M this FOR test')
'test  10  M-M this FOR test'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...