在python中使用正则表达式拆分文本

时间:2018-05-02 13:37:49

标签: python regex

我的文字中有示例:整篇文字在这里:pastebin

for i in range(0,3):
    f.write(str(l[i])+"\n")

我想将文本拆分为每个发言人的部分。这意味着,如果我找到一个发言者,直到下一个发言者的部分是前一个发言者的文本。

演讲者是:Dr. Trischler (FDP): Meine Damen und Herren! Ich möchte von vornherein als einer der Flücht- lingsvertreter in diesem Hause meiner Freude darüber Ausdruck verleihen, daß die Anträge zur Linderung der Not der Flüchtlinge aus allen Par- teien kommen, daß sich hier Regierung und Oppo- sition anscheinend einig in der Auffassung sind, daß dieses Problem ein allgemeines ist, daß wir alle gemeinsam zusammenarbeiten müssen. Weil ich weiß, daß hier das nötige Verständnis vor- handen ist, will ich mich auch aller Ausführungen enthalten, die irgendwie allgemeiner Natur sind. Ich will nicht über die Notwendigkeit der Linde- rung der Not usw. sprechen, sondern ich will zu einzelnen Fragen, die in diesen verschiedenen An- trägen angeschnitten sind, kurz Stellung nehmen. Die Frage des gerechten Ausgleichs. Auch meine Fraktion ist hier selbstverständlich für einen ge- rechten, gleichmäßigen Ausgleich über alle Länder hinweg. Auch wir lehnen wie die Mehrheit in diesem Hause es ab, daß man unter den Flücht- lingen irgendwelche Gruppierungen macht und daß für die einzelnen Gegenden die oder jene be- vorzugt behandelt werden sollen Zur Frage der Freiwilligkeit: Ich habe das Ge- fühl, daß mein Vorredner von zweierlei Frei- willigkeit gesprochen hat. Einmal sehe ich die Frage der Freiwilligkeit vom Standpunkt der Hei- matvertriebenen aus. In dieser Frage sind wir der Meinung, daß keinerlei Zwang angewendet werden darf. Wir kennen aus der Vergangenheit auch ver- schiedenen „freiwilligen" Zwang; auch dies würden wir ablehnen. Wir können es den Menschen nicht zumuten, daß sie noch einmal gezwungen werden, von dort wieder wegzugehen, wo sie bereits o einigermaßen eine neue Heimstätte gefunden ha- ben. — Die zweite Freiwilligkeit ist die Frage der Freiwilligkeit der Länder, wieweit sie diesen Aus- gleich für sich wollen oder nicht. Hier können wir nun vorerst ruhig abwarten, wie weit die eigene Bereitwilligkeit gehen wird und wieweit es not- wendig sein müßte, den Artikel 119 des Grund- gesetzes in Anwendung zu bringen. Jedenfalls nehmen wir zu diesem Ausgleich den Standpunkt ein, daß es notwendig ist, daß der Ausgleich erfolgt und ausreichend durchgeführt wird. Das, was wir jetzt hören, es sei geplant, bis Ende 1950 300 000 umzusiedeln, ist bestimmt keine Lö- sung. Denn wir haben von den Vorrednern zu die- sem Thema bereits gehört, daß soundso viele Flücht- linge wieder neu zuströmen, so daß es Ende 1950 wahrscheinlich so aussehen wird, daß sich praktisch gar nichts geändert hat, weil dieselben Länder, die Flüchtlinge abgeben, sehr bald wieder mindestens ebenso viele aufgenommen haben werden. Präsident Dr. Köhler: Bevor wir fortfahren, darf ich zunächst diesen Antrag zur Geschäftsordnung zur Aussprache stellen. Wird das Wort zur Un- terstützung des Antrags auf vorläufige Aussetzung der ersten Beratung der Drucksache Nr. 17 ge- wünscht? — Bitte, Herr Abgeordneter Kiesinger. Dr. Trischler (FDP):

我想在匹配的发言人面前分割文字。所以我可以将文本分开给每个发言者。

我的代码:

Präsident Dr. Köhler:

对于拆分列表中的搜索,我收到错误:

def regex_tokenizer(text):

    regex = r"(\s+(?=(Vizepräsident|Präsident)([\s])([A-Z])([A-z])........:))|(\s+(?=([A-Z]+[a-z]*)([\s]*)(\([A-Z]*\))))"

    splitedtext = re.split(regex, text)

    return splitedtext

def search(splitedtext):

    searched = [s for s in splitedtext if "Bonn" in s]

    print(search())

我找不到问题。问题出在我的正则表达式上吗?还是在正则表达式方法?或者在搜索列表中理解?

2 个答案:

答案 0 :(得分:0)

你有一个过于复杂的正则表达式。试试这个:

regex = r"(^.*:)"

这将产生以下结果:

['', 'Dr. Trischler  (FDP):', ' Meine Damen und Herren! ...', ...]

答案 1 :(得分:0)

请检查此正则表达式是否适合您:

((?:Dr\.|Vizepräsident|Präsident).*(?<!cid)):((?:(?!Dr\.|Vizepräsident|Präsident).*\n)*)

Demo