Python-Split-Funktionsäquivalent für reguläre Ausdrücke in Golang
Im Bereich der Programmierung sind reguläre Ausdrücke ein leistungsstarkes Werkzeug zum Abgleichen und Verarbeiten von Zeichenfolgen. In Python ist die Split-Funktion eine häufig verwendete reguläre Ausdrucksfunktion, mit der eine Zeichenfolge in Teilzeichenfolgen aufgeteilt wird. Entwickler, die Golang verwenden, fragen sich jedoch möglicherweise, wie sie in Golang dieselbe Funktionalität wie die Split-Funktion in Python erreichen können. In diesem Artikel stellt Ihnen der PHP-Editor Zimo vor, wie Sie die Aufteilungsfunktion für reguläre Ausdrücke in Golang äquivalent verwenden, um dieses leistungsstarke Tool besser zu nutzen.
Frageninhalt
Ich habe den folgenden Python-Code, der einem regulären Ausdruck entspricht::
import re digits_re = re.compile("([0-9ee.+]*)") p = digits_re.split("hello, where are you 1.1?") print(p)
Es gibt diese Ausgabe::
['', '', 'h', 'e', '', '', 'l', '', 'l', '', 'o', '', ',', '', ' '、''、'w'、''、'h'、'e'、''、''、'r'、'e'、''、''、' '、''、'a' , '', 'r', 'e', '', '', ' ', '', 'y', '', 'o', '', 'u', '', ' ', '1.1 ', '', '', '?', '', '']
Ich versuche, die obige Ausgabe mit golang
zu erhalten.
package main import ( "bytes" "fmt" "log" "os/exec" "regexp" "strconv" ) func main() { // execute the command and get the output cmd := exec.command("echo", "hello, where are you 1.1?") var out bytes.buffer cmd.stdout = &out err := cmd.run() if err != nil { log.fatal(err) } // extract the numerical values from the output using a regular expression re := regexp.mustcompile(`([0-9ee.+]*)`) //matches := re.findallstring(out.string(), -1) splits := re.split(out.string(), -1) fmt.println(splits) }
Ich erhalte die folgende Ausgabe::
[H l l o , w h r a r y o u ? ]
Ich denke, reguläre Ausdrücke sind sprachabhängig, daher hilft die in Python verwendete Funktion split()
nicht split()
函数对 golang
没有帮助。使用了 regexp
包中的多个 find*()
. Habe mehrere find*()
-Funktionen aus dem regexp
-Paket verwendet, konnte aber keine Funktion finden, die die Ausgabe des obigen Python-Programms liefern würde.
Das Ziel der Ausgabe eines String-Arrays besteht darin, Zeichen zu trennen, die nicht in float
konvertiert werden können, und wenn der String als Gleitkomma geparst werden kann, berechne ich den gleitenden Durchschnitt.
Zum Schluss kombiniere ich alles und präsentiere die Ausgabe wie einen Linux-Befehl watch
.
Benötigen Sie weitere Details/Hintergrundinformationen? Ich teile es gerne.
Vielen Dank für Ihre Hilfe!
Workaround
In der Zwischenzeit habe ich etwas, das für meinen Anwendungsfall funktioniert. Es hat nicht genau das gleiche Format wie python
, enthält aber nicht die leere Zeichenfolge/das leere Zeichen.
Ich habe die Funktion split
和 findallstring
verwendet, um die gewünschte Ausgabe zu erhalten.
// unfortunately go regex split doesn't work like python // so we construct the entire array with matched string (numericals) // and the split strings to combine the output splits := digitsre.split(string(out), -1) matches := digitsre.findallstring(string(out), -1) p := []string{} for i := 0; i < len(splits); i++ { p = append(p, matches[i]) p = append(p, splits[i]) }
Mit dem obigen Codeausschnitt erhalte ich so etwas wie ::
[H e l l o , w h e r e a r e y o u 1.1 ?]
Ich bin nicht sehr gut darin regex
und irgendwie funktioniert die obige Methode für meinen Anwendungsfall.
Um es etwas leichter zu formulieren: Ich habe meine Kollegen scherzen hören, dass, wenn man ein Problem mit regex
s Hilfe löst, man am Ende zwei Probleme haben wird! ! !
Das obige ist der detaillierte Inhalt vonPython-Split-Funktionsäquivalent für reguläre Ausdrücke in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die Funktion SPLIT() teilt eine Zeichenfolge anhand eines angegebenen Trennzeichens in ein Array auf und gibt ein Zeichenfolgenarray zurück, in dem jedes Element ein durch Trennzeichen getrennter Teil der ursprünglichen Zeichenfolge ist. Die Verwendung umfasst: Aufteilen einer durch Kommas getrennten Werteliste in ein Array, Extrahieren von Dateinamen aus Pfaden und Aufteilen von E-Mail-Adressen in Benutzernamen und Domänen.

Möglichkeiten zum Sortieren von Zeichenfolgen in Java: Verwenden Sie die Methode Arrays.sort(), um ein Array von Zeichenfolgen in aufsteigender Reihenfolge zu sortieren. Verwenden Sie die Methode Collections.sort(), um eine Liste von Zeichenfolgen in aufsteigender Reihenfolge zu sortieren. Verwenden Sie die Comparator-Schnittstelle zum benutzerdefinierten Sortieren von Zeichenfolgen.

In der C-Sprache ist \0 das Endzeichen einer Zeichenfolge, das als Nullzeichen oder Abschlusszeichen bezeichnet wird. Da Strings als Byte-Arrays im Speicher abgelegt werden, erkennt der Compiler das Ende des Strings über \0 und stellt so sicher, dass Strings korrekt verarbeitet werden. \0 Funktionsweise: Der Compiler stoppt das Lesen von Zeichen, wenn er auf \0 trifft, und nachfolgende Zeichen werden ignoriert. \0 selbst belegt keinen Speicherplatz. Zu den Vorteilen gehören eine zuverlässige String-Verarbeitung, eine verbesserte Effizienz (es ist nicht erforderlich, das gesamte Array zu scannen, um das Ende zu finden) und ein einfacher Vergleich und eine einfachere Handhabung.

args steht in Java für Befehlszeilenargumente und ist ein Array von Zeichenfolgen, das die Liste der Argumente enthält, die beim Start des Programms übergeben werden. Es ist nur in der Hauptmethode verfügbar und sein Standardwert ist ein leeres Array, wobei jeder Parameter über einen Index zugänglich ist. args wird verwendet, um Befehlszeilenargumente zu empfangen und zu verarbeiten, um beim Start eines Programms Eingabedaten zu konfigurieren oder bereitzustellen.

args ist ein spezielles Parameterarray der Hauptmethode in Java, das zum Abrufen eines String-Arrays mit Befehlszeilenparametern oder externen Eingaben verwendet wird. Durch Zugriff auf das args-Array kann das Programm diese Argumente lesen und nach Bedarf verarbeiten.

Wie implementiert man die Sortierfunktion für chinesische Zeichen in C-Programmiersoftware? In der modernen Gesellschaft ist die Sortierfunktion für chinesische Zeichen eine der wesentlichen Funktionen in vielen Softwareprogrammen. Ob in Textverarbeitungsprogrammen, Suchmaschinen oder Datenbanksystemen: Chinesische Schriftzeichen müssen sortiert werden, um chinesische Textdaten besser anzeigen und verarbeiten zu können. Wie implementiert man in der C-Sprachprogrammierung die Sortierfunktion für chinesische Zeichen? Eine Methode wird im Folgenden kurz vorgestellt. Um die Sortierfunktion für chinesische Zeichen in der C-Sprache zu implementieren, müssen wir zunächst die Zeichenfolgenvergleichsfunktion verwenden. Ran

KI-Technologie wurde mit PHP-Funktionen kombiniert, um die Funktionalität der Anwendung zu verbessern. Zu den spezifischen KI-Anwendungen gehören: die Verwendung von Algorithmen für maschinelles Lernen zur Klassifizierung von Text, wie z. B. Naive Bayes. Führen Sie eine detaillierte Textanalyse durch, indem Sie Techniken zur Verarbeitung natürlicher Sprache wie Wortsegmentierung und Wortstammerkennung nutzen.

Die Auswirkungen von Funktionen auf die Leistung von C++-Programmen umfassen den Overhead für Funktionsaufrufe sowie den Overhead für die Zuweisung lokaler Variablen und Objekte: Overhead für Funktionsaufrufe: einschließlich Stapelrahmenzuweisung, Parameterübertragung und Steuerungsübertragung, was erhebliche Auswirkungen auf kleine Funktionen hat. Overhead bei der Zuordnung lokaler Variablen und Objekte: Die Erstellung und Zerstörung einer großen Anzahl lokaler Variablen oder Objekte kann zu einem Stapelüberlauf und Leistungseinbußen führen.
