Если у вас нет пользовательского скрипта, который изменяет дизайн сайта (или даже если так), вы должны были заметить, что у нас есть дизайн нашего сайта!
Итак, чтобы отпраздновать, давайте создадим программу, которая задним числом применяет этот дизайн (упрощенно, конечно)!
Итак, наиболее важные изменения:
- наше новое имя теперь Code Golf и Coding Challenges
- наш сайт больше не является синим цветом по умолчанию и вместо этого является хорошим темно-зеленым
Итак, учитывая строку, измените:
PPCG
вCGCC
Programming Puzzles {non-whitespace} Code Golf
кCode Golf {same-thing} Coding Challenges
(например,Programming Puzzles + Code Golf
,and Code Golf
, и& Code Golf
все были бы изменены наCode Golf + Coding Challenges
,and Coding Challenges
и& Coding Challenges
.#abc
в#acb
(своп - синего до зеленого и наоборот - просто игнорировать тот факт , что зеленый не должно логически стать синим , но я не хочу , чтобы усложнить цвет сдвига)#abcdef
к#abefcd
(такой же, как указано выше)
Обратите внимание, что для замены цвета вы должны принять любую шестнадцатеричную цифру от 0-9
до a-f
. Вы можете выбрать, какой регистр шестнадцатеричной цифры требуется, но он должен быть постоянным и одинаковым от ввода к выводу.
Ваши замены могут быть чувствительными к регистру, и если нет, пожалуйста, укажите, как работает вывод.
Подстановки должны происходить только тогда, когда строка окружена границами слов (включая начало #
). Другими словами, каждая из указанных замен должна происходить только в том случае, если совпадение находится на краю строки или ограничено не буквенно-цифровыми символами (с обеих сторон).
Применяются стандартные лазейки. Это испытание для игры в гольф, поэтому выигрывает самый короткий код!
Примеры
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
(для последнего контрольного примера важно отметить, что переведенная строка может быть переведена снова, но преобразование должно быть применено ровно один раз)
Важное обновление
(Спасибо @tsh)
Programming Puzzles ... Code Golf
Правило подстановки может включать в себя другие правила внутри него ( Programming Puzzles PPCG Code Golf
действует). В этом случае вы можете выбрать, будут ли применяться правила, но они должны быть детерминированными. Я не требую, чтобы вы были согласованы между собой, PPCG
и #...
потому что ответы, кажется, реализуют правила в моем порядке упорядочения списков, что приводит к несоответствиям. Это просто разъяснение; Я считаю, что все текущие ответы остаются в силе.
Programming Puzzles and no substitution Code Golf
может также кого-то поймать (хотя все используют одно и то же действительное регулярное выражение)Code Golf and Programming Puzzles
иProgramming Puzzles and Programming Puzzles and Code Golf
. @Veskah Хм, и я думаю, что последний предложенный тестовый пример не удался в моем ответе 05AB1E, так как у меня нет регулярного выражения ..>. <Вернуться к чертежной доске ..Ответы:
Рубин
-p
,165164159 байтВ конечном итоге он очень похож на ответ sed, но он использует строковую интерполяцию Ruby для дублирования совпадения гекс-группы
([\da-f]{1,2})
в третьем регулярном выражении три раза вместо необходимости повторять все заново.Попробуйте онлайн!
источник
{1,2}
разрыв с шестнадцатеричными входами длиной 4 или 5, например#aabbc
? Изменить: это делает (этот пример не должен быть заменен, потому что это не правильный шестнадцатеричный цвет).-
не алфавитно-цифровой символ).#
символом немного двусмысленны, поскольку/\b/
не регистрируются рядом с другим не алфавитно-цифровым, но я все равно внес изменение без изменения байта (замена\S
на\w
)(?<!\w)
мой(^|\W)
на 1 символ?C ++ (gcc) ,
270285283 байтаСпасибо Нейлу за указание на ошибку.
-2 байта благодаря потолку.
Попробуйте онлайн!
источник
#fade
и#faced
что он не должен.Сетчатка 0.8.2 ,
153130 байтПопробуйте онлайн! Ссылка включает в себя тестовые случаи. Все замены чувствительны к регистру. Предполагается, что нормальные символы регулярного выражения допустимы, так что
\B#
соответствуют только#
те символы, которые не следуют за символом слова. Изменить: Сохранено 22 байта благодаря @tsh.источник
\B#(?=([\da-f]{3}){1,2}\b)(.+?)(..??)(..??)\b
?GNU sed
-E
, 198 символовРаботает с использованием, например
sed -E 'the above'
; переводы строки могут быть либо включены буквально, либо заменены на,;
если вы того пожелаете. Оба работают.@HyperNeutrino давай, что правило границы слова глупо. Посмотри, что я должен был сделать в этом
#
деле.Да, я даже не пытался. :П
+9 к @Value Ink
источник
-E
вместо этого назвать его «GNU sed ».sed
«s регулярного выражения соответствия позволяет использовать в\d
качестве ярлыка для0-9
? может сэкономить вам целых 6 байтовStax , 85 байт
Запустите и отладьте его
источник
05AB1E ,
123109105110114 байтов+5 байт для исправления тестовых случаев, таких как
Programming Puzzles and no substitution Code Golf
иProgramming Puzzles and Programming Puzzles and Code Golf
.+4 байта, исправляющие подобные тестовые примеры
color-#00f
(цвета с чем-то, кроме пробелов / переносов, окружающих его). Спасибо @Grimy за то, что обратили на это мое внимание.Чувствительный к регистру. Шестнадцатеричные значения в нижнем регистре
abcdef
;Programming Puzzles ... Code Golf
в заглавии;PPCG
в верхнем регистре.Попробуйте онлайн.
Определенно не правильный язык для работы .. Подражать границам слов и заменять
Programming Puzzles \S+ Code Golf
, но неCode Golf \S+ Programming Puzzles
илиProgramming Puzzles \S+ \S+ Code Golf
без каких-либо регулярных выражений довольно сложно (сделать коротко) ..>.>Объяснение:
Смотрите этот 05AB1E наконечник шахты (раздел Как пользоваться словарем? ) , Чтобы понять , почему
”–±ÇÀ”
это"Programming Puzzles"
;”ƒËŠˆ”
есть"Code Golf"
; и”Âïªï”
есть"Coding Challenges"
.источник
Python 2 , 240 байт
Попробуйте онлайн!
источник
JavaScript (Node.js) , 174 байта
Попробуйте онлайн!
источник
#abcde
потому что квалификатор regex{3,6}
соответствует от 3 до 6 символов вместо 3 или 6, которые, как я предполагаю, вы использовали.Пиф ,
177173162142 байтаВот версия без механизмов сжатия строк в Pyth (безопаснее копировать и вставлять):
Попробуйте онлайн!
Это закончилось очень долго, потому что я старался быть как можно более педантичным с регулярными выражениями. Я пытался сжать каждую возможную строку, но большинство из них либо не стали меньше, либо не могли быть правильно вставлены в TIO.
Объяснение:
источник
Perl 5
-p
,152145 байт@ValueInk экономит 7 байтов
Попробуйте онлайн!
источник
( \S+ )(Code Golf)\b/$2$1Coding
экономит 2 байта. Кроме того, последнее регулярное выражение может заканчиваться просто\b
вместо(?=\s|$)
\s
должно быть\W
вместо этого, в противном случае это терпит неудачу в этом случае (-
это не буквенно-цифровой символ, поэтому следует применить подстановку).Java 8, 192 байта
Порт ответа от Retina @Neil , так что обязательно проголосуйте за него!
Попробуйте онлайн.
источник