Разделение по символам с использованием регулярных выражений

1

Я хочу разбить строку на char '-' вместе с пробелами слева и справа от нее. Как я могу это сделать?

Я попробовал несколько вещей:

a.split('[\s]-[\s]')
a.split( *- *)
a.split(\s-\s)
Теги:

3 ответа

2
Лучший ответ
import re
s = 'abc-abc- abc -abc - abc'
r = re.compile('\s*-\s*')
r.split(s)

Дам

['abc', 'abc', 'abc', 'abc', 'abc']
  • 0
    Это похоже на правильный (полный) ответ для меня, и вы просто опередили меня.
  • 0
    +1 - это правильно.
2

Если вы хотите удалить все пробелы вокруг '-', используйте это регулярное выражение.

\s*-\s*

Если вам нужно только одно дополнительное место с обеих сторон, используйте его.

\s?-\s?
  • 0
    Это, кажется, не делает правильную вещь.
  • 0
    Извините, я не знаю Python, только регулярное выражение.
0
s='one - two - three - four'

print re.split(r'\s*-\s*',s)

печатает:

['one', 'two', 'three', 'four']

Ещё вопросы

Сообщество Overcoder
Наверх
Меню