O ile nie masz skryptu użytkownika, który modyfikuje projekt strony (a nawet jeśli tak, to powinieneś zauważyć, że mamy projekt strony!
Aby świętować, stwórzmy program, który zastosuje ten projekt z mocą wsteczną (oczywiście uproszczony)!
Najważniejsze zmiany to:
- nasza nowa nazwa to teraz Code Golf and Coding Challenges
- nasza strona nie jest już domyślnym kolorem niebieskim, a zamiast tego jest ładną ciemnozieloną
Tak więc, biorąc pod uwagę ciąg, zmień:
PPCG
doCGCC
Programming Puzzles {non-whitespace} Code Golf
doCode Golf {same-thing} Coding Challenges
(na przykładProgramming Puzzles + Code Golf
,and Code Golf
i& Code Golf
to wszystko zmieni sięCode Golf + Coding Challenges
,and Coding Challenges
i& Coding Challenges
.#abc
do#acb
(zamień kolor niebieski na zielony i odwrotnie - po prostu zignoruj fakt, że zieleń nie powinna logicznie stać się niebieska, ale nie chcę komplikować zmiany koloru)#abcdef
do#abefcd
(tak samo jak powyżej)
Pamiętaj, że w przypadku zamiany kolorów należy zaakceptować dowolną cyfrę szesnastkową od 0-9
do a-f
. Możesz wybrać, jaki przypadek cyfry szesnastkowej będzie wymagany, ale musi być spójny i taki sam od wejścia do wyjścia.
W podstawieniach może być rozróżniana wielkość liter, a jeśli nie, proszę określić, jak działa wyjście.
Podstawienia powinny mieć miejsce tylko wtedy, gdy ciąg znaków jest otoczony granicami słów (w tym na początku #
). Innymi słowy, każde z podanych podstawień powinno wystąpić tylko wtedy, gdy dopasowanie znajduje się na krawędzi łańcucha lub jest otoczone znakami niealfanumerycznymi (po obu stronach).
Obowiązują standardowe luki. To wyzwanie dla golfa, więc wygrywa najkrótszy kod!
Przykłady
PPCG -> CGCC
Programming Puzzles or Code Golf -> Code Golf or Coding Challenges
PPCG stands for Programming Puzzles and Code Golf and its site color is #abf -> CGCC stands for Code Golf and Coding Challenges and its site color is #afb
The color #00f is much more intense than #5568ed -> The color #0f0 is much more intense than #55ed68
Programming Puzzles and No Substitution -> Programming Puzzles and No Substitution
No Substitution and Code Golf -> No Substitution and Code Golf
Programming Puzzles and no substitution Code Golf -> Programming Puzzles and no substitution Code Golf
Code Golf and Programming Puzzles -> Code Golf and Programming Puzzles
Programming Puzzles and Programming Puzzles and Code Golf -> Programming Puzzles and Code Golf and Coding Challenges
(w ostatnim przypadku testowym należy zauważyć, że przetłumaczony ciąg może zostać ponownie przetłumaczony, ale transformacja musi zostać zastosowana dokładnie raz)
Ważna aktualizacja
(Dzięki @tsh)
Programming Puzzles ... Code Golf
Zasada substytucji mogą zawierać inne reguły wewnątrz niego ( Programming Puzzles PPCG Code Golf
to ważne). W takim przypadku możesz wybrać, czy reguły mają być stosowane, ale musi to być deterministyczne. Nie wymagam, abyś był spójny między, PPCG
a #...
ponieważ odpowiedzi wydają się implementować reguły na mojej liście, co powoduje niespójności. To tylko wyjaśnienie; Uważam, że wszystkie aktualne odpowiedzi pozostają aktualne.
Programming Puzzles and no substitution Code Golf
też kogoś złapię (nawet jeśli wszyscy używają tego samego ważnego wyrażenia regularnego)Code Golf and Programming Puzzles
iProgramming Puzzles and Programming Puzzles and Code Golf
. @Veskah Hmm i myślę, że ostatni sugerowany przypadek testowy zawodzi w mojej odpowiedzi 05AB1E, ponieważ nie mam wyrażenia regularnego ..>. <Wróć do deski kreślarskiej ..Odpowiedzi:
Rubin
-p
,165164159 bajtówOkazało się, że jest bardzo podobny do odpowiedzi sed, ale nadużywa interpolacji ciągów Ruby, aby
([\da-f]{1,2})
trzykrotnie powielić dopasowanie grupy heksów w trzecim wyrażeniu regularnym, zamiast konieczności powtarzania całej tej sprawy.Wypróbuj online!
źródło
{1,2}
przerwy z wejściami szesnastkowymi o długości 4 lub 5, np.#aabbc
? Edycja: tak (tego przykładu nie należy zastępować, ponieważ nie jest prawidłowym kolorem szesnastkowym).-
jest to znak niealfanumeryczny).#
jest nieco dwuznaczny, ponieważ/\b/
nie ma w niej zarejestrować obok innego niealfanumeryczne, ale zrobiłem zmianę jakikolwiek bez zmian bajtów (zastępującego\S
z\w
)(?<!\w)
mój(^|\W)
za 1 znak?C ++ (gcc) ,
270285283 bajtówDzięki Neilowi za wskazanie błędu.
-2 bajty dzięki pułapkowi cat.
Wypróbuj online!
źródło
#fade
a#faced
nie powinna.Retina 0.8.2 ,
153130 bajtówWypróbuj online! Link zawiera przypadki testowe. Wszystkie podstawienia uwzględniają wielkość liter. Zakłada, że normalne znaki wyrażenia regularnego są dopuszczalne, więc
\B#
pasują tylko#
do znaków, które nie następują po wyrazie. Edycja: Zapisano 22 bajtów dzięki @tsh.źródło
\B#(?=([\da-f]{3}){1,2}\b)(.+?)(..??)(..??)\b
?GNU sed
-E
, 198 znakówUruchamiany przy użyciu np .
sed -E 'the above'
; znaki nowej linii mogą być dołączone dosłownie lub zastąpione przez,;
jeśli chcesz. Oba działają.@HyperNeutrino, chodź, że zasada granicy słów jest głupia. Zobacz, co musiałem zrobić w
#
sprawie.Tak, nawet nie próbowałem. : P
+9 przez @Value Ink
źródło
-E
”.sed
dopasowanie wyrażenia regularnego nie pozwala na użycie\d
skrótu0-9
? może zaoszczędzić ci całe 6 bajtówStax , 85 bajtów
Uruchom i debuguj
źródło
05AB1E ,
123109105110114 bajtów+5 bajtów naprawiających przypadki testowe, takie jak
Programming Puzzles and no substitution Code Golf
iProgramming Puzzles and Programming Puzzles and Code Golf
.+4 bajty naprawiające przypadki testowe, takie jak
color-#00f
(kolory z czymś poza spacjami / znakami otaczającymi je). Dzięki @Grimy za zwrócenie mojej uwagi na to.Z uwzględnieniem wielkości liter. Wartości szesnastkowe są pisane małymi literami
abcdef
;Programming Puzzles ... Code Golf
jest w tytule;PPCG
jest napisane wielkimi literami.Wypróbuj online.
Zdecydowanie nieodpowiedni język do pracy. Naśladowanie granic słów i zastępowanie
Programming Puzzles \S+ Code Golf
, ale nieCode Golf \S+ Programming Puzzles
lubProgramming Puzzles \S+ \S+ Code Golf
bez wyrażeń regularnych jest dość trudne (krótko) ..>.>Wyjaśnienie:
Zobacz tę końcówkę 05AB1E kopalni (sekcja Jak korzystać ze słownika? ) , Aby zrozumieć, dlaczego
”–±ÇÀ”
jest"Programming Puzzles"
;”ƒËŠˆ”
jest"Code Golf"
; i”Âïªï”
jest"Coding Challenges"
.źródło
Python 2 , 240 bajtów
Wypróbuj online!
źródło
JavaScript (Node.js) , 174 bajty
Wypróbuj online!
źródło
#abcde
ponieważ kwalifikator wyrażenia regularnego{3,6}
dopasowuje od 3 do 6 znaków, zamiast 3 lub 6, które, jak zakładam, zamierzałeś.Pyth ,
177173162142 bajtówOto wersja bez mechanizmów kompresji ciągów Pytha (inaczej bezpieczne kopiowanie-wklejanie):
Wypróbuj online!
To skończyło się naprawdę długo, ponieważ starałem się być tak pedantyczny, jak to możliwe przy wyrażeniach regularnych. Próbowałem skompresować każdy możliwy ciąg, ale większość z nich albo się nie zmniejszyła, albo nie można było poprawnie wkleić jej do TIO.
Wyjaśnienie:
źródło
Perl 5
-p
,152145 bajtów@ValueInk zapisuje 7 bajtów
Wypróbuj online!
źródło
( \S+ )(Code Golf)\b/$2$1Coding
oszczędza 2 bajty. Ostatni regex może się kończyć tylko\b
zamiast(?=\s|$)
\s
powinno być\W
zamiast tego, w przeciwnym razie to nie ten przypadek (-
jest znak zakaz alfanumeryczny, więc zastąpienie powinna być stosowana).Java 8, 192 bajty
Port odpowiedzi Retina @Neila , więc pamiętajcie o jego głosowaniu!
Wypróbuj online.
źródło