Я хочу найти шаблон и заменить его другим Предположим, у меня есть:

"Name":"hello"

И хочу сделать это

Name= "hello"

Использование регулярного выражения Python Строка может быть чем угодно в двойных кавычках, поэтому мне нужно найти шаблон "": "" и заменить его на = ""

2
Prakhar Agarwal 3 Июл 2019 в 05:58

3 ответа

Лучший ответ

Это выражение,

^"\s*([^"]+?)\s*"\s*:\s*"?([^"]+)"?$

Имеет две группы захвата:

([^"]+?) 

Для сбора желаемых данных. Тогда мы просто re.sub.

В этой демонстрации поясняется это выражение, если вас это может заинтересовать.

Контрольная работа

import re

result = re.sub('^"\s*([^"]+?)\s*"\s*:\s*"?([^"]+)"?$', '\\1= "\\2"', '"  Name  ":"  hello   "')
print(result)
5
Emma 3 Июл 2019 в 03:49

Почему бы не использовать это регулярное выражение:

import re
s = '"Name":"hello"'
print(re.sub('"(.*)":"(.*)"', '\\1= \"\\2\"', s))

Выход:

Name= "hello"

Объяснение здесь.

Для строк, содержащих более одной строки такого типа, вам необходимо добавить к ней некоторый код Python:

import re
s = '"Name":"hello", "Name2":"hello2"'
print(re.sub('"(.*?)":"(.*?)"', '\\1= \"\\2\"', s))

Выход:

Name= "hello", Name2= "hello2"
3
U10-Forward 3 Июл 2019 в 03:27

Используя чистый Python, это simple как:

s = '"Name":"hello"'

print(s.replace(':', '= ').replace('"', '', 2))
# Name= "hello"
1
Austin 3 Июл 2019 в 03:09