Ich arbeite mit einem LDAP-Objekt, wo ich einige Einträge aus Active Directory abruft. Die Ergebnisse sind so, dass der Bereich in Großbuchstaben zurückgegeben wird, wie CN=bob,DC=example,DC=com
anstelle von cn=bob,dc=example,dc=com
. Gibt es eine Möglichkeit, die Teilstrings CN
und DC
selektiv in Kleinbuchstaben umzuwandeln? Sofar, ich benutzte strings.split
mehrere Male (mit "," zuerst und dann wiederholend mit "="), um zu dem Punkt zu kommen, wo ich CN, DC usw. in eine Liste bekommen kann, und dann Strings.ToLower auf ihnen verwenden . Gibt es einen besseren und intelligenteren Weg, dies zu tun, möglicherweise mit Regex, so dass ich möglicherweise zwei Iterationen vermeiden kann?Golan selektive Umwandlung von Zeichenfolge in Kleinbuchstaben
Antwort
Hier ist eine regex Weise alle Großtextteile mit einem =
tp Kleinbuchstaben gefolgt zu machen:
package main
import (
"fmt"
"strings"
"regexp"
)
func main() {
input := "CN=bob,DC=example,DC=com"
r := regexp.MustCompile(`[A-Z]+=`)
fmt.Println(r.ReplaceAllStringFunc(input, func(m string) string {
return strings.ToLower(m)
}))
}
Siehe Playground demo
die Regex - [A-Z]+=
- Spiele 1 oder mehr Großbuchstaben ASCII Buchstaben und eine =
nach ihnen. Dann können wir innerhalb der ReplaceAllStringFunc
eine "anonyme Funktion" verwenden, um einen geänderten Übereinstimmungswert zurückzugeben.
Schön und sauber. Der Regex-Teil wird konvertiert, während die anderen Teile, ob oben oder unten, gleich bleiben. Vielen Dank. – scott
Does not
strings.Replace(results, "CN", "cn", -1)
helfen kann? https://golang.org/pkg/strings/#Replace
Der Realm-Teil könnte alles und jede Zahl sein, basierend auf dem Rückgabewert. – scott
- 1. Konvertieren von Zeichenfolge in Kleinbuchstaben
- 2. Umwandlung von Zeichen aus Eingabe in Zeichenfolge
- 3. Dynamische Umwandlung von Zeichenfolge in Spaltenname. MySQL
- 4. Grep Muster passenden Kleinbuchstaben Zeichenfolge in Anführungszeichen
- 5. Convert IDictionary <Zeichenfolge, Zeichenfolge> Schlüssel in Kleinbuchstaben (C#)
- 6. Ändern Sie die Zeichenfolge von Kleinbuchstaben in den ursprünglichen Fall
- 7. Golan - struct: time.Time
- 8. Selektive Zwischenspeicherung in Firefox
- 9. URL Umwandlung in eine Zeichenfolge in PHP
- 10. Selektive Export von MySQL-Datenbank
- 11. implizite Umwandlung Zeichenfolge auf ganzzahlige
- 12. Selektive ActiveRecord
- 13. Golan effiziente binäre Codierung
- 14. Umwandlung einer Zeichenfolge in eine Doppel
- 15. Schnellste Art der Umwandlung von Ganzzahl in Zeichenfolge in Java
- 16. Umwandlung der Sequenz von Bytes in ASCII-Zeichenfolge in lua
- 17. C# explizite Umwandlung Zeichenfolge ENUM
- 18. selektive Iteration von Array in PHP
- 19. null auf Umwandlung Zeichenfolge Datum
- 20. Zeichenfolge in Datetime Umwandlung System.Globalization.CultureInfo.InvariantCulture mit
- 21. Mongo Umwandlung ISO Datum in seltsame Zeichenfolge
- 22. C# Umwandlung MMddyy formatiert Zeichenfolge in Datetime
- 23. eine Zeit Zeichenfolge Sekunden in Python Umwandlung
- 24. Namen von Kleinbuchstaben in Docker
- 25. Selektive Testklassen in VSTS ausführen
- 26. Umwandlung von c-Stil-String in C++ - Stil Zeichenfolge
- 27. Verwendung/Konvertierung von XML-Zeichenfolge als Parameter in Xsl-Umwandlung
- 28. Python: Alternate Groß- und Kleinbuchstaben in einer Zeichenfolge
- 29. Was ist der Standardalgorithmus für die Umwandlung von Unicode-Zeichen in Kleinbuchstaben?
- 30. Umwandlung von char * String in Kleinbuchstaben mit tolower() verursacht SIGSEGV - was ist los?
Was ist mit diesem Regex: [Regex Demo] (https://regex101.com/r/wN1oF4/1) –
Danke @lbarros, ich könnte diese Übereinstimmung mit '([AZ] {2}) = bekommen. +, ([AZ] {2}) =. +, ([AZ] {2}) =. + 'Aber die Anzahl der Felder könnte variieren, wenn eine' OU' dazwischen kommt. Es variiert basierend auf dem zurückgegebenen Eintrag. – scott