Python: Как получить подстроку из строки несколько раз - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь получить указанную подстроку c из строки так часто, как она появляется в Python. Подстрока каждый раз будет отличаться, но структура будет одинаковой.

Пример:

[{u'style': u'opacity:0.58800001;fill:#0000ff;fill-opacity:1;
stroke:none;stroke-width:3.47952747;
stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;
stroke-dashoffset:0;stroke-opacity:1', u'id': u'rect5231', u'd': 

u'm 0,1016.9291 35.433071,0 0,35.433 -35.433071,0 z

'},{u'style': u'opacity:0.58800001;fill:#0000ff;fill-opacity:1;
stroke:none;stroke-width:3.47952747;stroke-linecap:round;
stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;
stroke-dashoffset:0;stroke-opacity:1', u'id': u'rect5233', u'd':

 u'm 70.866142,1016.9291 35.433068,0 0,35.433 -35.433068,0 z

'}]

Это строка, которая у меня есть, и мне нужна только отдельная подстрока, начинающаяся с "m .. Msgstr "Я пробовал str.split, но он выводит только один вывод второй помеченной подстроки.

Спасибо за вашу помощь !!

Ответы [ 2 ]

0 голосов
/ 27 марта 2020
data = [{u'style': u'...dummy style...', u'id': u'rect5231', u'd':u'm 0,1016.9291 35.433071,0 0,35.433 -35.433071,0 z'},
       {u'style': u'...dummy style...', u'id': u'rect5233', u'd':u'm 70.866142,1016.9291 35.433068,0 0,35.433 -35.433068,0 z'}]

for item in data:
    d_value = item.get('d')
    print(d_value)
    print(type(d_value))

output

m 0,1016.9291 35.433071,0 0,35.433 -35.433071,0 z
<class 'str'>
m 70.866142,1016.9291 35.433068,0 0,35.433 -35.433068,0 z
<class 'str'>

Как видите, легко получить желаемое значение, и это str

0 голосов
/ 27 марта 2020

Имея одну строку, вы можете использовать метод find() в while loop. Начиная с начала вашей строки, вы ищете первое вхождение с помощью метода find(), который возвращает вам индекс начала подстроки, затем вы начинаете снова, но на этот раз начинаете с индекса после того, который был найден предыдущим find(). И так далее, если find() не вернет -1.

Чтобы найти подстроку по некоторому шаблону в вашей строке, вы можете использовать модуль re для регулярных выражений

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