How to extract the substring between two markers?

前端 未结 18 2333
慢半拍i
慢半拍i 2020-11-22 06:02

Let\'s say I have a string \'gfgfdAAA1234ZZZuijjk\' and I want to extract just the \'1234\' part.

I only know what will be the few characte

18条回答
  •  旧巷少年郎
    2020-11-22 06:31

    One liners that return other string if there was no match. Edit: improved version uses next function, replace "not-found" with something else if needed:

    import re
    res = next( (m.group(1) for m in [re.search("AAA(.*?)ZZZ", "gfgfdAAA1234ZZZuijjk" ),] if m), "not-found" )
    

    My other method to do this, less optimal, uses regex 2nd time, still didn't found a shorter way:

    import re
    res = ( ( re.search("AAA(.*?)ZZZ", "gfgfdAAA1234ZZZuijjk") or re.search("()","") ).group(1) )
    

提交回复
热议问题