Tak, newbious pytanie: Szukam dla najmniejszych (i najpiękniejszych) sposób porównywania dwóch ciągów i jest w stanie wrócić, jako oddzielne ciągi:Python: Get wspólnych znaków z ciągów
- Wszystko wspólne znaki,
- Niezwykłe znaki (wszystkie znaki, ale bez wspólnych)
- Znaki, które są unikalne dla jednego ciągu.
... używanie Pythona (lub Perla, jeśli jest to łatwiejsze, ale najlepiej Python). Przykład:
A = "123 ABC"
B = "135 AZ"
thingamajigger(A, B) would give all these:
intersect = "13 A" (inclues space)
exclusion = "2BCZ5"
a_minus_b = "2BC"
b_minus_a = "5Z"
a_minus_b jest dość proste ... ale jeśli jeden z tych wymyślnych sposobów jednej liniowej aby wyciągnąć go wyłączyć, to jestem otwarty.
for i in B:
A = A.replace(i, "")
To trochę jak operacje boolowskie na łańcuchach.
(I ogromny bonus do każdego, kto może znaleźć sposób, że zwróci wszystkie wspólne/niestandardowa znaki z dowolnej liczby ciągów jako wejście. To byłoby bardzo przydatne rzeczywiście.)
W każdym razie, dzięki wszystkim!
Wow ... oczywiście ... i wtedy można po prostu użyć "". Połącz (ustaw), aby zgnieść go na sznurku! Dzięki. – Jollywatt
@Joseph: To * jest * piękne, prawda? :-) – jason
Jedyne cienie są, zestawy zawierają tylko unikalne elementy. Powiedzmy, że chciałem odjąć _ "!" _ Od _ "Hello!" _. Użycie _set ("Hello!") - set ("!") _ Dałoby _ "Helo" _. Ale użycie alternatywnego _a_minus_b_ powyżej działa. :) – Jollywatt