我是python的新手,正在尝试使用正则表达式来匹配字符串。
string = '"formula_pretty":"MoS2"'
whatIsee =re.search(r'(?<="formula_pretty":").+(?= \")',string.group(0)
print(whatIsee)
我想要的是MoS2,但是re.search不返回任何结果。我认为这与引号有关,但转义它们无济于事。
有人知道编写此re.search代码的正确方法是什么吗?
答案 0 :(得分:1)
前瞻组(?= \")
中只有多余的空间会导致不匹配。只要做到这一点,就不必逃避"
,因为您始终使用原始字符串。
s = '"formula_pretty":"MoS2", "somethingelse":"blabla"'
whatIsee = re.search(r'(?<="formula_pretty":").+?(?=")', s)
print(whatIsee.group())
打印
MoS2
答案 1 :(得分:0)
您可以尝试与此伴侣
(?<="formula_pretty":").+(?=")
您在正则表达式中遗漏的内容。
(?= \")
。PS:- @Pushppendra用于说明r“和r'
之间的区别答案 2 :(得分:0)
string = '"formula_pretty":"MoS2"'
match = re.search(r'(?<=:)\s*"(.+?)"', string).group(1)
编辑:包括说明: