Как я могу найти шаблон в регулярных выражениях? - PullRequest
2 голосов
/ 03 июля 2019

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

"Name":"hello"

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

Name= "hello"

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

Ответы [ 3 ]

5 голосов
/ 03 июля 2019

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

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

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

([^"]+?) 

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

В этом демо , объяснение, если вам это интересно, объясняется.

Тест

import re

result = re.sub('^"\s*([^"]+?)\s*"\s*:\s*"?([^"]+)"?$', '\\1= "\\2"', '"  Name  ":"  hello   "')
print(result)
3 голосов
/ 03 июля 2019

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

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"
1 голос
/ 03 июля 2019

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

s = '"Name":"hello"'

print(s.replace(':', '= ').replace('"', '', 2))
# Name= "hello"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...