Sauf si vous avez un script utilisateur qui modifie la conception du site (ou même si c'est le cas), vous devriez avoir remarqué que nous avons la conception de notre site!
Alors, pour fêter ça, créons un programme qui applique ce design de manière rétroactive (trop simpliste, bien sûr)!
Donc, les changements les plus importants sont:
- notre nouveau nom s'appelle désormais Code Golf et Défis de codage
- notre site n'est plus la couleur bleue par défaut mais un beau vert foncé
Donc, étant donné une chaîne, changez:
PPCG
àCGCC
Programming Puzzles {non-whitespace} Code Golf
àCode Golf {same-thing} Coding Challenges
(par exemple,Programming Puzzles + Code Golf
,and Code Golf
et& Code Golf
seraient tous changé pourCode Golf + Coding Challenges
,and Coding Challenges
et& Coding Challenges
.#abc
pour#acb
(permutez le bleu au vert et vice versa - ignorez simplement le fait que le vert ne devrait pas logiquement devenir bleu mais je ne veux pas compliquer le changement de couleur)#abcdef
to#abefcd
(idem ci-dessus)
Notez que pour les échanges de couleurs, vous devez accepter tout chiffre hexadécimal de 0-9
à a-f
. Vous pouvez choisir quelle casse de chiffre hexadécimal demander, mais il doit être cohérent et identique d’entrée à sortie.
Vos substitutions peuvent être sensibles à la casse. Dans le cas contraire, veuillez spécifier le fonctionnement de la sortie.
Les substitutions ne doivent avoir lieu que lorsque la chaîne est entourée de limites de mots (y compris le début de la #
). En d'autres termes, chacune des substitutions spécifiées ne doit se produire que si la correspondance est au bord de la chaîne ou est bordée de caractères non alphanumériques (des deux côtés).
Les failles standard s'appliquent. Ceci est un défi de code-golf, alors le code le plus court gagne!
Exemples
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
(pour le dernier cas de test, il est important de noter que la chaîne traduite peut être traduite à nouveau mais que la transformation doit être appliquée exactement une fois)
Mise à jour importante
(Merci @tsh)
La Programming Puzzles ... Code Golf
règle de substitution peut inclure les autres règles à l'intérieur de celle-ci ( Programming Puzzles PPCG Code Golf
est valide). Dans ce cas, vous pouvez choisir d'appliquer ou non les règles, mais cela doit être déterministe. Je n'exige pas que vous soyez cohérent entre PPCG
et #...
parce que les réponses semblent mettre en œuvre les règles dans l'ordre de ma liste, ce qui entraîne des incohérences. Ceci est juste une clarification; Je crois que toutes les réponses actuelles restent valables.
Programming Puzzles and no substitution Code Golf
pourrait aussi attraper quelqu'un (même si tout le monde utilise la même expression rationnelle valide)Code Golf and Programming Puzzles
etProgramming Puzzles and Programming Puzzles and Code Golf
. @Veskah Hmm, et je pense que le dernier cas de test suggéré a échoué dans ma réponse 05AB1E, car je n’ai pas d’expression régulière ...>. <Retour à la planche à dessin ..Réponses:
Ruby
-p
,165164159 octetsCela a fini par être très similaire à la réponse sed, mais il abuse de l'interpolation de chaîne de Ruby pour dupliquer le groupe hexadécimal correspondant
([\da-f]{1,2})
dans la troisième expression rationnelle trois fois au lieu d'avoir à répéter le tout.Essayez-le en ligne!
la source
{1,2}
pause avec des entrées hexagonales de longueur 4 ou 5, par exemple#aabbc
? Edit: oui (cet exemple ne doit pas être remplacé car il ne s'agit pas d'une couleur hexadécimale valide).-
est un caractère non alphanumérique).#
est un peu ambigu, car/\b/
je ne m'inscris pas à côté d'un autre non-alphanumérique, mais j'ai quand même fait le changement pour ne pas changer d'octet (le remplacer\S
par\w
)(?<!\w)
avec mon(^|\W)
pour 1 personnage?C ++ (gcc) ,
270285283 octetsMerci à Neil pour avoir signalé un bug.
-2 octets grâce à ceilingcat.
Essayez-le en ligne!
la source
#fade
et#faced
qu’il ne devrait pas.Retina 0.8.2 ,
153 à130 octetsEssayez-le en ligne! Le lien inclut des cas de test. Toutes les substitutions sont sensibles à la casse. Suppose que les caractères de mots regex normaux sont acceptables, de sorte que
\B#
seuls les#
mots qui ne suivent pas un caractère de mot soient correspondants . Edit: 22 octets enregistrés grâce à @tsh.la source
\B#(?=([\da-f]{3}){1,2}\b)(.+?)(..??)(..??)\b
?GNU sed
-E
, 198 caractèresRunnable en utilisant par exemple
sed -E 'the above'
; les nouvelles lignes peuvent être soit incluses littéralement, soit remplacées par;
si vous le souhaitez. Les deux fonctionnent.@HyperNeutrino viens sur cette règle de limite de mot est stupide. Regardez ce que je devais faire dans le
#
cas.Oui, je n'ai même pas essayé. : P
+9 par @Value Ink
la source
-E
".sed
La correspondance de regex ne permet-elle pas l'utilisation\d
comme raccourci pour0-9
? pourrait vous faire économiser 6 octetsStax , 85 octets
Exécuter et déboguer
la source
05AB1E ,
123109105110114 octets+5 octets fixant des cas de test comme
Programming Puzzles and no substitution Code Golf
etProgramming Puzzles and Programming Puzzles and Code Golf
.+4 octets fixant les cas de test comme
color-#00f
(couleurs avec quelque chose en plus des espaces / des lignes nouvelles l'entourant). Merci à @Grimy pour avoir porté cela à mon attention.Sensible aux majuscules et minuscules. Les valeurs hexadécimales sont en minuscule
abcdef
;Programming Puzzles ... Code Golf
est dans le titre;PPCG
est en majuscule.Essayez-le en ligne.
Ce n’est vraiment pas le bon langage pour le travail. Il est assez difficile d’imiter les limites des mots et de les remplacer
Programming Puzzles \S+ Code Golf
, mais pasCode Golf \S+ Programming Puzzles
ouProgramming Puzzles \S+ \S+ Code Golf
sans expressions rationnelles (faire court).>.>Explication:
Voir cette astuce de mes 05AB1E (section Comment utiliser le dictionnaire? ) Pour comprendre pourquoi
”–±ÇÀ”
est"Programming Puzzles"
;”ƒËŠˆ”
est"Code Golf"
; et”Âïªï”
est"Coding Challenges"
.la source
Python 2 , 240 octets
Essayez-le en ligne!
la source
JavaScript (Node.js) , 174 octets
Essayez-le en ligne!
la source
#abcde
car le qualificatif regex fait apparaître{3,6}
entre 3 et 6 caractères, au lieu de 3 ou 6, ce qui, je suppose, vous intéressait.Pyth ,
177173162142 octetsVoici une version sans les mécanismes de compression de chaîne de Pyth (c'est-à-dire qu'il est sûr de copier-coller):
Essayez-le en ligne!
Cela s’est avéré très long, car j’ai essayé d’être aussi pédant que possible avec les expressions rationnelles. J'ai essayé de compresser toutes les chaînes possibles, mais la plupart d'entre elles ne sont pas devenues plus petites ou ne peuvent pas être collées correctement dans TIO.
Explication:
la source
Perl 5
-p
,152145 octets@ValueInk enregistre 7 octets
Essayez-le en ligne!
la source
( \S+ )(Code Golf)\b/$2$1Coding
enregistre 2 octets. De plus, la dernière expression rationnelle peut se terminer par juste un\b
au lieu de(?=\s|$)
\s
devrait être la\W
place, sinon il ne le cas (-
un caractère non alphanumérique, de sorte que la substitution doit être appliqué).Java 8, 192 octets
La réponse de Port of @Neil 's Retina , assurez-vous donc de lui donner une autre voix!
Essayez-le en ligne.
la source