Python 使用正则表达式从文本中提取嵌入字符串的句子

Python 使用正则表达式从文本中提取嵌入字符串的句子,python,regex,string,text-extraction,Python,Regex,String,Text Extraction,我想从文本(作为字符串变量提供)中提取包含子字符串列表中的子字符串的句子。如果我不能提取句子,我会在感兴趣的子字符串前后提取一段固定长度的字符串 也许下图会让事情变得更清楚: 在这幅图中,我们看到了一个分配给字符串变量的文本。以黄色突出显示的子字符串是感兴趣的子字符串,在给定文本中出现3次。我想要一个函数,它将返回两个突出显示的句子(绿色+黄色)。如果我不能提取句子,我会在黄色突出显示的字符串前后提取固定数量的单词(例如20个单词) 子字符串将列在感兴趣的子字符串列表中 我已经找到了一种方法来

我想从文本(作为字符串变量提供)中提取包含子字符串列表中的子字符串的句子。如果我不能提取句子,我会在感兴趣的子字符串前后提取一段固定长度的字符串

也许下图会让事情变得更清楚:

在这幅图中,我们看到了一个分配给字符串变量的文本。以黄色突出显示的子字符串是感兴趣的子字符串,在给定文本中出现3次。我想要一个函数,它将返回两个突出显示的句子(绿色+黄色)。如果我不能提取句子,我会在黄色突出显示的字符串前后提取固定数量的单词(例如20个单词)

子字符串将列在感兴趣的子字符串列表中

我已经找到了一种方法来提取精确的子字符串,而不是像上面描述的那样提取前后的文本跨度

例如:

“码码>文本”中的“码码>文本”中的“码码>文本”中的“码>码>文本”中的“码>码>文本”中的“码>码>文本”中的“码>文本”中的“码>码”中的“码>码>文本”中的“码>”中的25/25/7/7/7/7/7/7/7/2019/7/7/2019”的主要主要主要的是是是是是是是是是是的的,以及以及以及以及以及以及以及以及以及以及以及其他其他其他其他的的的的的的,是是是是是是是是是是是是是是的的的的的,以及以及以及以及以及以及以及以及以及是是是是本本本本本本本本本本的的的,是是是是是是是是是是是是是是是是是是是是是是是是的的的,以及以及以及以及以及以及以及以及以及以及以及以及以及以及以及,是是2019年απόφασής(Α)∆Α: ΩΙΑ7465ΧΙ8-ΤΨΦ), µε την οποία εγκρίθηκε η τροποποίηση εν συνόλω του καταστατικού της ανώνυµης εταιρείας µε την επωνυµία «ΑΛΟΥΜΥΛ, ΒΙΟΜΗΧΑΝΙΑ ΑΛΟΥΜΙΝΙΟΥ ΑΝΩ本校的校方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方ή。4548/2018 «Αναµόρφωση ∆ικαίου Ανωνύµων Εταιρειών», όπως ισχύει. Το εν λόγω καταστατικό µε ηµεροµηνία 29/5/2019 αποτελείται από 33 άρθρα, ως αυτά διαλαµβάνονται στα κεφάλαια Ι έως ΙΧ αυτού.Ο ΠΡΟΪΣΤΑΜΕΝΟΣ ΤΗΣ ∆ΥΥΝ∑∑ΗΩΑΝΝΗΣ ΑΡΕΤΑΙΟΣ 1 ΝΕΟ ΚΕΙΜΕΝΟ ΤΟΥ ΚΑΤΑΣΤΑΤΙΚΟΥ ΤΗΣ ΑΝΩΝΥΜΗΣ ΕΤΑΙΡΙΑΣ «ΑΛΟΥΜΥΛ, ΒΙΟΜΗΧΑΝΙΑ ΑΛΟΥΜΙΝΙΟΥ ΑΝΩΝΥΜΗ ΕΤΑΙΡΙΑ» με αριθμό ΜΑΕ: 17520/06/Β/88/18 και αριθμό ΓΕΜΗ: 14492035000 όπως προέκυψε ύστερα από την εναρμόνιση με τις διατάξεις των άρθρων του Ν. 2018年48/2018 2018 2018年48/2018 2018年48/2018 2018年18月18日18 2018 2018年18月18日18 2018 2018 2018 2018年48/2018 2018 2018 2018年48/2018 2018 2018 2018 2018 2018 2018 2018 2018年18月18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 2018 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18ΚΕΑΆρθρο1∑∑∑ταση-ππωννμία∑∑νί∑ταιΑνώνμοτρεπωνυμία 本校校方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方.∑επερίπτωση∑Ⅴαλλαγήτηςτςρίπίπίπίπήπήτιειπίπίτιηιηιείείείείεοράτηςεταιρκήεπωνμίας,ήτησι“ΑLUMΑLU NΜNΜUΜ工业股份有限公司”.» Άρθρο 2 Σκοπός «Σκοπός της Εταιρίας είναι η ανέγερση και εκμετάλλευση εργοστασίου παραγωγής επιμήκων προϊόντων αλουμινίου με τη μέθοδο διελάσεως και επιφανειακής επεξεργασίας αυτών. Η έρευνα, ο σχεδιασμός, η μελέτη και η εμπορία εξοπλισμού για παραγωγή ηλεκτρικής ενέργειας από ανανεώσιμες πηγές ενέργειας και ειδικότερα αλλά όχι περιοριστικά από ηλιακή ενέργεια. Η εμπορία των προϊόντων αυτών, καθώς και η εμπορία παρεμφερών προϊόντων' 导入正则表达式 字符串列表=[“字符串”]、“字符串”、“字符串”、“字符串”、“字符串”、“字符串”ΩΝΥΜΗ ΕΤΑΙΡΙΑ', 'ΑΝΕΚ ΤΟΥΡΙΣΤΙΚΗ - ΞΕΝΟΔΟΧΕΙΑΚΗ - ΣΥΜΜΕΤΟΧΩΝ ΑΝΩΝΥΜΗ ΕΤΑΙΡΕΙΑ', “阿提卡银行(ATTICA BANK)!” regex.findall(r“\L”,文本,单词=字符串列表) ['ΑΛΟΥΜΥΛ, ΒΙΟΜΗΧΑΝΙΑ ΑΛΟΥΜΙΝΙΟΥ ΑΝΩΝΥΜΗ ΕΤΑΙΡΙΑ']
你有什么建议?

这听起来像是正则表达式拆分的工作

from re import split

split('abc\d{3}','sldkfjsdl abc678 sldkfjsdlk thing')
编辑:

编写了一个广义拆分器

from re import split

def super_split(regex_list,string): 
    answer = [string] 
    for r in regex_list: 
        answer = sum([sum([[s,r] for s in split(r,a)],[])[:-1] for a in answer],[]) 
    return answer 

s = super_split(list_of_strings,text)

注意到您提供的文本不是图片中给出的全文,所以我只能在您提供的文本上进行测试。

这听起来像是regex split的工作

from re import split

split('abc\d{3}','sldkfjsdl abc678 sldkfjsdlk thing')
编辑:

编写了一个广义拆分器

from re import split

def super_split(regex_list,string): 
    answer = [string] 
    for r in regex_list: 
        answer = sum([sum([[s,r] for s in split(r,a)],[])[:-1] for a in answer],[]) 
    return answer 

s = super_split(list_of_strings,text)

您是否注意到您提供的文本不是图片中给出的全文,因此我只能在您提供的文本上进行测试。

谢谢,但我不知道这种方法如何使我能够实现我的目标。也许您希望使用我提供的文本,并尝试将感兴趣的字符串隔离在将扩展20 wo的文本范围内rds可以是任意方向的,也可以是提取嵌入感兴趣字符串的段落。这很好,但您没有提供可以复制和粘贴的数据。文本也显然是非ascii的,因此我需要字符串的精确字节。请注意,我没有意识到您可以