How to extract the substring between two markers?

前端 未结 18 2713
慢半拍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:10

    You can find first substring with this function in your code (by character index). Also, you can find what is after a substring.

    def FindSubString(strText, strSubString, Offset=None):
        try:
            Start = strText.find(strSubString)
            if Start == -1:
                return -1 # Not Found
            else:
                if Offset == None:
                    Result = strText[Start+len(strSubString):]
                elif Offset == 0:
                    return Start
                else:
                    AfterSubString = Start+len(strSubString)
                    Result = strText[AfterSubString:AfterSubString + int(Offset)]
                return Result
        except:
            return -1
    
    # Example:
    
    Text = "Thanks for contributing an answer to Stack Overflow!"
    subText = "to"
    
    print("Start of first substring in a text:")
    start = FindSubString(Text, subText, 0)
    print(start); print("")
    
    print("Exact substring in a text:")
    print(Text[start:start+len(subText)]); print("")
    
    print("What is after substring \"%s\"?" %(subText))
    print(FindSubString(Text, subText))
    
    # Your answer:
    
    Text = "gfgfdAAA1234ZZZuijjk"
    subText1 = "AAA"
    subText2 = "ZZZ"
    
    AfterText1 = FindSubString(Text, subText1, 0) + len(subText1)
    BeforText2 = FindSubString(Text, subText2, 0) 
    
    print("\nYour answer:\n%s" %(Text[AfterText1:BeforText2]))
    

提交回复
热议问题