python: разделить строку после символа - PullRequest
4 голосов
/ 05 октября 2011

У меня есть строка с двумя "-"

467.2-123-hdxdlfow

Я хочу удалить все после второго "-", чтобы я получил "467.2-123". Каков наилучший способ сделать это?

Ответы [ 7 ]

13 голосов
/ 05 октября 2011
before, sep, after = theString.rpartition("-")

Это разбивает строку о последнем появлении "-", и ваш ответ будет переменной before.

10 голосов
/ 05 октября 2011
In [6]: "-".join('467.2-123-hdxdlfow'.split('-')[0:2])
Out[6]: '467.2-123'
2 голосов
/ 05 октября 2011

Если вы после всего, кроме последнего элемента, я модифицировал ответ Спикавиго, чтобы исключить последний элемент.

a='467.2-123-hdxdlfow'
'-'.join(a.split('-')[:-1])
2 голосов
/ 05 октября 2011
 >>> s = '467.2-123-hdxdlfow'
 >>> s[:s.rfind('-')]
 '467.2-123'
1 голос
/ 05 октября 2011
a='467.2-123-hdxdlfow'
'-'.join(a.split('-')[:2])

Если у вас ровно 2 '-', вы можете сделать

a.rsplit('-',1)[0]
0 голосов
/ 05 октября 2011

Вы можете попробовать это result = re.sub("([^-]*-[^-]*)(-.*$)", r"\1", '467.2-123-hdxdlfow') дает 467.2-123

0 голосов
/ 05 октября 2011

Попробуйте это регулярное выражение

([^-]*-[^-]*)-.*

и запросите результат для первой группы захвата ((...) в примере).

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