Python Regex to find a string in double quotes within a string

后端 未结 4 1313
自闭症患者
自闭症患者 2020-11-29 06:06

A code in python using regex that can perform something like this

Input: Regex should return \"String 1\" or \"String 2\" or \"String3\" 
Output: String 1,St         


        
4条回答
  •  佛祖请我去吃肉
    2020-11-29 06:31

    import re
    r=r"'(\\'|[^'])*(?!<\\)'|\"(\\\"|[^\"])*(?!<\\)\""
    
    texts=[r'"aerrrt"',
    r'"a\"e'+"'"+'rrt"',
    r'"a""""arrtt"""""',
    r'"aerrrt',
    r'"a\"errt'+"'",
    r"'aerrrt'",
    r"'a\'e"+'"'+"rrt'",
    r"'a''''arrtt'''''",
    r"'aerrrt",
    r"'a\'errt"+'"',
          "''",'""',""]
    
    for text in texts:
         print (text,"-->",re.fullmatch(r,text))
    

    results:

    "aerrrt" --> <_sre.SRE_Match object; span=(0, 8), match='"aerrrt"'>
    "a\"e'rrt" --> <_sre.SRE_Match object; span=(0, 10), match='"a\\"e\'rrt"'>
    "a""""arrtt""""" --> None
    "aerrrt --> None
    "a\"errt' --> None
    'aerrrt' --> <_sre.SRE_Match object; span=(0, 8), match="'aerrrt'">
    'a\'e"rrt' --> <_sre.SRE_Match object; span=(0, 10), match='\'a\\\'e"rrt\''>
    'a''''arrtt''''' --> None
    'aerrrt --> None
    'a\'errt" --> None
    '' --> <_sre.SRE_Match object; span=(0, 2), match="''">
    "" --> <_sre.SRE_Match object; span=(0, 2), match='""'>
     --> None
    

提交回复
热议问题