Python Regex для слов с переносом

Я ищу регулярное выражение для сопоставления слов с дефисом в python.

Ближайшее, что мне удалось найти, это: '\ w + - \ w + [- w +] * '

text = "one-hundered-and-three- some text foo-bar some--text"
hyphenated = re.findall(r'\w+-\w+[-\w+]*',text)

, который возвращает список [' one-hundered-and-three- ',' foo-bar '].

Это почти идеально, за исключением конечного дефиса после «трех». Мне нужен дополнительный дефис, только если за которым следует 'слово'. т.е. вместо '[- \ w +] *' мне нужно что-то вроде '(- \ w +) *', которое, как я думал, сработает, но не работает (оно возвращает ['-three,' ']). т.е. что-то, что соответствует | слову, за которым следует дефис, за которым следует слово, за которым следует дефис_слово, ноль или более раз |.

10
задан Sameera Thilakasiri 5 December 2011 в 09:34
поделиться