引号中包含的Python regex match关键字,引号中包含另一个关键字

时间:2018-12-05 05:44:03

标签: python regex

我是python的新手,正在尝试使用正则表达式来匹配字符串。

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

我想要的是MoS2,但是re.search不返回任何结果。我认为这与引号有关,但转义它们无济于事。

有人知道编写此re.search代码的正确方法是什么吗?

3 个答案:

答案 0 :(得分:1)

前瞻组(?= \")中只有多余的空间会导致不匹配。只要做到这一点,就不必逃避",因为您始终使用原始字符串。

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

打印

MoS2

答案 1 :(得分:0)

您可以尝试与此伴侣

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

您在正则表达式中遗漏的内容。

  • 这部分有一个多余的空间(?= \")

Demo

PS:- @Pushppendra用于说明r“和r'

之间的区别

答案 2 :(得分:0)

string = '"formula_pretty":"MoS2"'
match = re.search(r'(?<=:)\s*"(.+?)"', string).group(1)

编辑:包括说明:

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