Ключевое слово соответствия регулярному выражению Python, заключенное в кавычки, после другого ключевого слова, заключенного в кавычки - PullRequest
0 голосов
/ 05 декабря 2018

Я новичок в python и пытаюсь использовать регулярные выражения для сопоставления строки.

string = '"formula_pretty":"MoS2"'
whatIsee =re.search(r'(?<="formula_pretty":").+(?= \")',string.group(0)
print(whatIsee)

Я хочу, чтобы то, что я вижу как MoS2, однако re.search не возвращает никакого результата,Я думаю, что это связано с кавычками, но избежать их не поможет.

Кто-нибудь знает, как правильно написать этот код re.search?

Ответы [ 3 ]

0 голосов
/ 05 декабря 2018

Только лишний пробел в группе прогнозирования (?= \") приводил к несоответствию.Просто сделайте это так, и вам не нужно будет бежать ", поскольку вы всегда используете необработанную строку.

s = '"formula_pretty":"MoS2", "somethingelse":"blabla"'
whatIsee = re.search(r'(?<="formula_pretty":").+?(?=")', s)
print(whatIsee.group())

Prints,

MoS2
0 голосов
/ 05 декабря 2018
string = '"formula_pretty":"MoS2"'
match = re.search(r'(?<=:)\s*"(.+?)"', string).group(1)

РЕДАКТИРОВАТЬ: Включить объяснение:

https://regex101.com/r/l50w8A/1

0 голосов
/ 05 декабря 2018

Вы можете попробовать этого помощника

(?<="formula_pretty":").+(?=")

Что вы пропустили в своем регулярном выражении.

  • Был один дополнительный пробел(?= \") в этой части.

Демо

PS: - @Pushppendra Для определения разницы между r "и r '

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