Heim > Java > Finden Sie ähnlichen Text mithilfe regulärer Ausdrücke

Finden Sie ähnlichen Text mithilfe regulärer Ausdrücke

王林
Freigeben: 2024-02-14 19:03:08
nach vorne
825 Leute haben es durchsucht

Der reguläre Ausdruck des PHP-Editors Yuzi ist ein leistungsstarkes Textvergleichstool, mit dem wir schnell ähnlichen Text finden können. Ob bei der String-Verarbeitung, der Datenextraktion oder der Validierung von Eingaben, reguläre Ausdrücke spielen eine wichtige Rolle. Seine Flexibilität und Effizienz ermöglichen es uns, komplexe Textoperationen bequemer abzuwickeln und so die Entwicklungseffizienz erheblich zu verbessern. Egal, ob Sie Anfänger oder erfahrener Entwickler sind, die Beherrschung regulärer Ausdrücke ist eine wesentliche Fähigkeit. Lassen Sie uns gemeinsam ihren Charme erkunden!

Frageninhalt

Ich habe Textlisten in verschiedenen PDF-Dokumenten identifiziert. Jetzt muss ich mithilfe regulärer Ausdrücke einige Werte aus jedem Text extrahieren. Einige meiner Muster sehen so aus:

some text[ -]?(.+)[ ,-]+some other text
Nach dem Login kopieren

Aber das Problem ist, dass einige Buchstaben nach der Erkennung möglicherweise falsch sind ("0" 代替 "o""i" 代替 "l" usw.). Deshalb passt mein Muster nicht dazu.

Ich möchte einen regulären Ausdruck wie Jaro-Winkler oder Levenshtein-Ähnlichkeit verwenden, damit ich mit s0me 文本 my_value、一些其他文本 等文本中提取 my_value beginnen kann.

Ich weiß, das sieht großartig aus. Aber vielleicht gibt es eine Lösung für dieses Problem.

Übrigens verwende ich Java, aber Lösungen in anderen Sprachen sind akzeptabel.

Problemumgehung:

Sie können Fuzzy-Matching verwenden, wenn Sie das regex-Modul in Python verwenden. Der folgende reguläre Ausdruck erlaubt bis zu 2 Fehler pro Phrase. Sie können komplexere Fehlertests verwenden (für Einfügungen, Ersetzungen und Löschungen). Einzelheiten finden Sie in der verlinkten Dokumentation.

import regex

txt = 's0me text my_value, some otner text'
pattern = regex.compile(r'(?:some text){e<=2}[ -]?(.+?)[ ,-]+(?:some other text){e<=2}')

m = pattern.search(txt)
if m is not none:
    print(m.group(1))
Nach dem Login kopieren

Ausgabe:

my_value
Nach dem Login kopieren
rrree

Das Muster für reguläre Ausdrücke (?i)(somes*w*s*texts*)([^,]+) wird verwendet, um Phrasen zu erfassen, die „etwas Text“ ähneln, gefolgt von beliebigen Zeichen vor einem Komma

Das obige ist der detaillierte Inhalt vonFinden Sie ähnlichen Text mithilfe regulärer Ausdrücke. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage