регулярное выражение - разделить на символ, только если есть пробелы до и после - PullRequest
0 голосов
/ 06 февраля 2019

Я хочу разбить строку, только если есть пробел до и после этого символа.В моем случае символом является тире, т. Е. '-'

Пример

Opzione - AAAA-11

Должен быть разбит на

Opzione   AAAA-11

, а не на

Opzione AAAA 11

Язык Python.

Спасибо

Ответы [ 3 ]

0 голосов
/ 06 февраля 2019

Вы можете использовать lookaround

(?<=\s)-(?=\s)
  • (?<=\s) -> Положительный взгляд позади.условие для проверки предыдущего пробела.
  • - -> Совпадения -.
  • (?=\s) -> Положительный прогноз соответствует следующему пробелу

На боковой ноте - \s будет соответствовать \r, \t и \n также, если вы просто хотите учесть только пробел, вы можете иметь такой

(?<= )-(?= )

0 голосов
/ 06 февраля 2019
str="Opzione - AAAA-11"
str=re.sub('(\s([\S])\s[\S]?)','',str)

Это (\s([\S])\s[\S]?) означает все, кроме пробела, между двумя пробелами, а затем все, кроме пробелов или нет, и таким образом вы сможете сопоставить, как g h h g.

Таким образом, оба h находятся между двумя пробелами, но когда вы сопоставляете только с \s([\S])\s, другое h не будет, но по (\s([\S])\s[\S]?) оба совпадут.

0 голосов
/ 06 февраля 2019

Вы можете сделать это с помощью регулярных выражений, но как насчет не-регулярных выражений, используя split() и join()

str = 'Opzione - AAAA-11';
df = ' '.join(str.split(' - '))
print(df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...