python中最长的匹配

时间:2011-07-03 21:10:54

标签: python string

我是python中的新手。我的数据采用以下格式的2d阵列。

array[0]                                              array[1]
Arkan                                                 Adrian Edmondson
Efgan All                                             Rik 
'Til Death Do Us Part (Star Trek: Deep Space Nine)    Bradley Thompson
'Til Death Do Us Part (Star Trek: Deep Space Nine)    David Weddle
Billy Sherrill                                       'Til I Can Make It on My Own (Deep Space) 

我想为文件中的每一行匹配此字符串,如果匹配两个数组,那么我想返回该行。 首先,我想在每一行中搜索两个数组。为此,我的尝试是:

def strinMach(domainL, rangeR):
    text = ""
    filetext = open(File, "r").read()
        sentlist = re.split(u'[\n|\r\n]+',filetext)
    for i in sentlist:
        if domainL in i and rangeR in i:                
            text = text + i + "\n"
        elif (To search for without the parenthesis string from array[0] & array[1]
              eg.search with (Til Death Do Us Part        Bradley Thompson ) )
        elif (To search with some string from array[0] & array[1]
               es. search with(Till Death   Bradley) or (Do Us Part  Thompson))
    return text

我的第二步是除了括号字符串之外用数组进行搜索(即除了(术语) )。

第三步使用两个数组的子字符串。

如何继续进行第二次和第二次第3步。

任何形式的帮助将不胜感激。 感谢!!!!!!!

1 个答案:

答案 0 :(得分:1)

我在解决你所问的问题时遇到了一些麻烦,但也许这会有所帮助:

您可以使用以下内容删除字符串的括号内部分:

thetext = re.sub(r"\(.*?\)", "", thetext)

(N.B。如果你有“((嵌套)括号),这将无法正常工作”)

你可以通过切片获得子串:

thetext[4:10]
thetext[:5]   # First 5 characters
thetext[-5:]  # Last 5 characters
thetext[:-1]  # All but the last character