myStr = "{\" 10b4343e \ ": \" {\\ "id \\": \\ "10b4343e \\", \\ "name \\": \\ "CollectionAuto1 \\", \\"версия \\" \\ "0.0.1 \\", \\ "VERSIONID \\" \\ "852488b3-866b-47d1-92dc-ef1095cf8fd6 \\", \\ "резюме \\" \\"CollectionAutomation 1 \\", \\ "icon \\": \\ ": Пользователи / vaibhsin / Библиотека / Поддержка приложений / Adobe / Adobe XD (Dev) / plugin_settings / 10b4343e / 81e73340-a58f-4f27-b934-a49eaba44ea5. PNG \\ "\\ "iconWebURL \\" \\" https://ccext -cdn.stage.adobecces.com / Extensions / 10b4343e / 852488b3-866b-47d1-92dc-ef1095cf8fd6 / иконки / 81e73340-a58f-4f27-b934-a49eaba44ea5.png \ \», \\ "\\ installedByPluginManager": правда, \\ "publishedAt \\" \\ "2019-11-04T09: 08: 21,940 + 0000 \\", \\ "helpUrl \\": \\ "vaibhsin@adobe.com \\"} \ "}"
import re cStr1 = '0.0.0' cStr2 = '10b4343e' part1 = r '\\ "id \\": \\ "'+ cStr2 + r' \\", \\ "name \\": \\ "CollectionAuto1 \\", \\ "version \\": \\ "'part3 =r '\\ ", \\" versionId \\ "'
print part1 print part3
new_version_string = myStr.replace (re.sub (('. ' + part1 +r '\ s ([\ d.] +)') + part3 + '. *', r '\ 1', myStr), '2.3.4 ') print new_version_string
Это работает нормально, но когда я принимаю myStr в качестве необработанной строки, например
myStr = r "{\" 10b4343e \ ": \" {\\ "id \\ ": \\" 10b4343e \\ "\\ "\\ имя": \\ "CollectionAuto1 \\", \\ "версия \\" \\ "0.0.1 \\", \\" VERSIONID \\ ": \\" 852488b3-866b-47d1-92dc-ef1095cf8fd6 \\ ", \\" summary \\ ": \\" CollectionAutomation 1 \\ ", \\" icon \\ ": \\" / Пользователи /vaibhsin / Библиотека / Поддержка приложений / Adobe / Adobe XD (Dev) /plugin_settings/10b4343e/81e73340-a58f-4f27-b934-a49eaba44ea5.png \\ ", \\" iconWebURL \\ ": \\" https://ccext -cdn.stage.adobecces.com / Extensions / 10b4343e / 852488b3-866b-47d1-92dc-ef1095cf8fd6 / иконки / 81e73340-a58f-4f27-b934-a49eaba44ea5.png \ \ "\\" \\ installedByPluginManager": правда, \\" publishedAt \\ "\\" 2019-11-04T09: 08: 21,940 + 0000 \\», \\ "HELPURL \\" \\ "\\ vaibhsin@adobe.com"}\ "}"
Тогда мое регулярное выражение не работает.
Заранее спасибо.