在python中使用regex拆分文本

2024-10-01 02:33:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个来自文本的示例:整个文本在这里:pastebin

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())

在拆分列表中搜索时,我得到错误:

Traceback (most recent call last):
  File "/Usersx/check_pdfs.py", line 59, in <module>
    search(splitedtext=regex_tokenizer(text=read_file()))
  File "/Usersx/check_pdfs.py", line 46, in search
    searched = [s for s in splitedtext if "Bonn" in s]
  File "x/check_pdfs.py", line 46, in <listcomp>
    searched = [s for s in splitedtext if "Bonn" in s]
TypeError: argument of type 'NoneType' is not iterable

我找不到问题。我的正则表达式有问题吗?还是正则表达式方法?或者在搜索列表上?你知道吗


Tags: in文本esdadrflderdie
2条回答

你的正则表达式太复杂了。请尝试以下操作:

regex = r"(^.*:)"

这将导致以下情况:

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

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

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

Demo

相关问题 更多 >