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

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

王林
王林nach vorne
2024-02-14 19:03:08750Durchsuche

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

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

Ausgabe:

my_value
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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen