Prolog
Setelah menginstal ekstensi browser anti-XSS, Stack Snippets tiba-tiba berhenti bekerja di seluruh jaringan Stack Exchange. Saya tidak bisa lagi belajar dari Stack Overflow , melihat demo yang sedang berjalan tentang Pengalaman Pengguna dan, yang paling buruk, tidak dapat menguji jawaban JavaScript pada Teka-teki Pemrograman dan Golf Kode ! Dengan putus asa saya mencari obat, dan menemukan kotak input kecil di pengaturan, di mana bisa menempatkan satu regex. Saya tidak dapat memasukkan semua situs Stack Exchange dalam kotak kecil ini, jadi saya meminta bantuan. Ini pertanyaannya.
Tugas
Tugas Anda adalah membuat ekspresi reguler yang cocok dengan semua URL situs web Stack Exchange, tanpa mencocokkan domain apa pun yang tidak dimiliki oleh Stack Overflow Inc.
Ekspresi reguler Anda harus cocok dengan semua URL dengan bagian-bagian berikut:
protocol
: ini akan menjadihttp://
atauhttps://
.domain
: ini akan menjadi item dari daftar ini:stackoverflow.com www.stackoverflow.com facebook.stackoverflow.com serverfault.com superuser.com meta.stackexchange.com webapps.stackexchange.com nothingtoinstall.com meta.webapps.stackexchange.com meta.nothingtoinstall.com gaming.stackexchange.com arqade.com thearqade.com meta.gaming.stackexchange.com meta.arqade.com meta.thearqade.com webmasters.stackexchange.com webmaster.stackexchange.com meta.webmasters.stackexchange.com meta.webmaster.stackexchange.com cooking.stackexchange.com seasonedadvice.com meta.cooking.stackexchange.com meta.seasonedadvice.com gamedev.stackexchange.com meta.gamedev.stackexchange.com photo.stackexchange.com photography.stackexchange.com photos.stackexchange.com meta.photo.stackexchange.com meta.photography.stackexchange.com meta.photos.stackexchange.com stats.stackexchange.com statistics.stackexchange.com crossvalidated.com meta.stats.stackexchange.com meta.statistics.stackexchange.com math.stackexchange.com maths.stackexchange.com mathematics.stackexchange.com meta.math.stackexchange.com diy.stackexchange.com meta.diy.stackexchange.com meta.superuser.com meta.serverfault.com gis.stackexchange.com meta.gis.stackexchange.com tex.stackexchange.com meta.tex.stackexchange.com askubuntu.com ubuntu.stackexchange.com meta.askubuntu.com meta.ubuntu.stackexchange.com money.stackexchange.com basicallymoney.com www.basicallymoney.com meta.money.stackexchange.com english.stackexchange.com elu.stackexchange.com meta.english.stackexchange.com stackapps.com ux.stackexchange.com ui.stackexchange.com meta.ux.stackexchange.com meta.ui.stackexchange.com unix.stackexchange.com linux.stackexchange.com meta.unix.stackexchange.com meta.linux.stackexchange.com wordpress.stackexchange.com meta.wordpress.stackexchange.com cstheory.stackexchange.com meta.cstheory.stackexchange.com apple.stackexchange.com askdifferent.com meta.apple.stackexchange.com rpg.stackexchange.com meta.rpg.stackexchange.com bicycles.stackexchange.com bicycle.stackexchange.com cycling.stackexchange.com bikes.stackexchange.com meta.bicycles.stackexchange.com meta.bicycle.stackexchange.com programmers.stackexchange.com programmer.stackexchange.com meta.programmers.stackexchange.com electronics.stackexchange.com chiphacker.com www.chiphacker.com meta.electronics.stackexchange.com android.stackexchange.com meta.android.stackexchange.com boardgames.stackexchange.com boardgame.stackexchange.com meta.boardgames.stackexchange.com physics.stackexchange.com meta.physics.stackexchange.com homebrew.stackexchange.com homebrewing.stackexchange.com brewadvice.com meta.homebrew.stackexchange.com meta.homebrewing.stackexchange.com security.stackexchange.com itsecurity.stackexchange.com meta.security.stackexchange.com meta.itsecurity.stackexchange.com writers.stackexchange.com writer.stackexchange.com writing.stackexchange.com meta.writers.stackexchange.com video.stackexchange.com avp.stackexchange.com meta.video.stackexchange.com meta.avp.stackexchange.com graphicdesign.stackexchange.com graphicsdesign.stackexchange.com graphicdesigns.stackexchange.com meta.graphicdesign.stackexchange.com dba.stackexchange.com meta.dba.stackexchange.com scifi.stackexchange.com sciencefiction.stackexchange.com fantasy.stackexchange.com meta.scifi.stackexchange.com codereview.stackexchange.com meta.codereview.stackexchange.com codegolf.stackexchange.com meta.codegolf.stackexchange.com quant.stackexchange.com meta.quant.stackexchange.com pm.stackexchange.com meta.pm.stackexchange.com skeptics.stackexchange.com skeptic.stackexchange.com skepticexchange.com meta.skeptics.stackexchange.com fitness.stackexchange.com meta.fitness.stackexchange.com drupal.stackexchange.com meta.drupal.stackexchange.com mechanics.stackexchange.com garage.stackexchange.com meta.mechanics.stackexchange.com meta.garage.stackexchange.com parenting.stackexchange.com meta.parenting.stackexchange.com sharepoint.stackexchange.com sharepointoverflow.com www.sharepointoverflow.com meta.sharepoint.stackexchange.com music.stackexchange.com guitars.stackexchange.com guitar.stackexchange.com meta.music.stackexchange.com sqa.stackexchange.com meta.sqa.stackexchange.com judaism.stackexchange.com mi.yodeya.com yodeya.com yodeya.stackexchange.com miyodeya.com meta.judaism.stackexchange.com german.stackexchange.com deutsch.stackexchange.com meta.german.stackexchange.com japanese.stackexchange.com meta.japanese.stackexchange.com philosophy.stackexchange.com meta.philosophy.stackexchange.com gardening.stackexchange.com landscaping.stackexchange.com meta.gardening.stackexchange.com travel.stackexchange.com meta.travel.stackexchange.com productivity.stackexchange.com meta.productivity.stackexchange.com crypto.stackexchange.com cryptography.stackexchange.com meta.crypto.stackexchange.com meta.cryptography.stackexchange.com dsp.stackexchange.com signals.stackexchange.com meta.dsp.stackexchange.com french.stackexchange.com meta.french.stackexchange.com christianity.stackexchange.com meta.christianity.stackexchange.com bitcoin.stackexchange.com meta.bitcoin.stackexchange.com linguistics.stackexchange.com linguist.stackexchange.com meta.linguistics.stackexchange.com hermeneutics.stackexchange.com meta.hermeneutics.stackexchange.com history.stackexchange.com meta.history.stackexchange.com bricks.stackexchange.com meta.bricks.stackexchange.com spanish.stackexchange.com espanol.stackexchange.com meta.spanish.stackexchange.com scicomp.stackexchange.com meta.scicomp.stackexchange.com movies.stackexchange.com meta.movies.stackexchange.com chinese.stackexchange.com meta.chinese.stackexchange.com biology.stackexchange.com meta.biology.stackexchange.com poker.stackexchange.com meta.poker.stackexchange.com mathematica.stackexchange.com meta.mathematica.stackexchange.com cogsci.stackexchange.com meta.cogsci.stackexchange.com outdoors.stackexchange.com meta.outdoors.stackexchange.com martialarts.stackexchange.com meta.martialarts.stackexchange.com sports.stackexchange.com meta.sports.stackexchange.com academia.stackexchange.com academics.stackexchange.com meta.academia.stackexchange.com cs.stackexchange.com computerscience.stackexchange.com meta.cs.stackexchange.com workplace.stackexchange.com meta.workplace.stackexchange.com windowsphone.stackexchange.com meta.windowsphone.stackexchange.com chemistry.stackexchange.com meta.chemistry.stackexchange.com chess.stackexchange.com meta.chess.stackexchange.com raspberrypi.stackexchange.com meta.raspberrypi.stackexchange.com russian.stackexchange.com meta.russian.stackexchange.com islam.stackexchange.com meta.islam.stackexchange.com salesforce.stackexchange.com meta.salesforce.stackexchange.com patents.stackexchange.com askpatents.com askpatents.stackexchange.com meta.patents.stackexchange.com meta.askpatents.com meta.askpatents.stackexchange.com genealogy.stackexchange.com meta.genealogy.stackexchange.com robotics.stackexchange.com meta.robotics.stackexchange.com expressionengine.stackexchange.com meta.expressionengine.stackexchange.com politics.stackexchange.com meta.politics.stackexchange.com anime.stackexchange.com meta.anime.stackexchange.com magento.stackexchange.com meta.magento.stackexchange.com ell.stackexchange.com meta.ell.stackexchange.com sustainability.stackexchange.com meta.sustainability.stackexchange.com tridion.stackexchange.com meta.tridion.stackexchange.com reverseengineering.stackexchange.com meta.reverseengineering.stackexchange.com networkengineering.stackexchange.com meta.networkengineering.stackexchange.com opendata.stackexchange.com meta.opendata.stackexchange.com freelancing.stackexchange.com meta.freelancing.stackexchange.com blender.stackexchange.com meta.blender.stackexchange.com mathoverflow.net mathoverflow.stackexchange.com mathoverflow.com meta.mathoverflow.net space.stackexchange.com thefinalfrontier.stackexchange.com meta.space.stackexchange.com sound.stackexchange.com socialsounddesign.com sounddesign.stackexchange.com meta.sound.stackexchange.com astronomy.stackexchange.com meta.astronomy.stackexchange.com tor.stackexchange.com meta.tor.stackexchange.com pets.stackexchange.com meta.pets.stackexchange.com ham.stackexchange.com meta.ham.stackexchange.com italian.stackexchange.com meta.italian.stackexchange.com pt.stackoverflow.com br.stackoverflow.com stackoverflow.com.br meta.pt.stackoverflow.com meta.br.stackoverflow.com aviation.stackexchange.com meta.aviation.stackexchange.com ebooks.stackexchange.com meta.ebooks.stackexchange.com alcohol.stackexchange.com beer.stackexchange.com dranks.stackexchange.com meta.alcohol.stackexchange.com meta.beer.stackexchange.com softwarerecs.stackexchange.com meta.softwarerecs.stackexchange.com arduino.stackexchange.com meta.arduino.stackexchange.com cs50.stackexchange.com meta.cs50.stackexchange.com expatriates.stackexchange.com expats.stackexchange.com meta.expatriates.stackexchange.com matheducators.stackexchange.com meta.matheducators.stackexchange.com meta.stackoverflow.com earthscience.stackexchange.com meta.earthscience.stackexchange.com joomla.stackexchange.com meta.joomla.stackexchange.com datascience.stackexchange.com meta.datascience.stackexchange.com puzzling.stackexchange.com meta.puzzling.stackexchange.com craftcms.stackexchange.com meta.craftcms.stackexchange.com buddhism.stackexchange.com meta.buddhism.stackexchange.com hinduism.stackexchange.com meta.hinduism.stackexchange.com communitybuilding.stackexchange.com moderator.stackexchange.com moderators.stackexchange.com meta.communitybuilding.stackexchange.com meta.moderators.stackexchange.com startups.stackexchange.com meta.startups.stackexchange.com worldbuilding.stackexchange.com meta.worldbuilding.stackexchange.com ja.stackoverflow.com jp.stackoverflow.com meta.ja.stackoverflow.com emacs.stackexchange.com meta.emacs.stackexchange.com hsm.stackexchange.com meta.hsm.stackexchange.com economics.stackexchange.com meta.economics.stackexchange.com lifehacks.stackexchange.com meta.lifehacks.stackexchange.com engineering.stackexchange.com meta.engineering.stackexchange.com coffee.stackexchange.com meta.coffee.stackexchange.com vi.stackexchange.com vim.stackexchange.com meta.vi.stackexchange.com musicfans.stackexchange.com meta.musicfans.stackexchange.com woodworking.stackexchange.com meta.woodworking.stackexchange.com civicrm.stackexchange.com meta.civicrm.stackexchange.com health.stackexchange.com meta.health.stackexchange.com ru.stackoverflow.com hashcode.ru stackoverflow.ru meta.ru.stackoverflow.com meta.hashcode.ru rus.stackexchange.com russ.hashcode.ru russ.stackexchange.com meta.rus.stackexchange.com mythology.stackexchange.com meta.mythology.stackexchange.com law.stackexchange.com meta.law.stackexchange.com opensource.stackexchange.com meta.opensource.stackexchange.com elementaryos.stackexchange.com meta.elementaryos.stackexchange.com portuguese.stackexchange.com meta.portuguese.stackexchange.com computergraphics.stackexchange.com meta.computergraphics.stackexchange.com hardwarerecs.stackexchange.com meta.hardwarerecs.stackexchange.com es.stackoverflow.com meta.es.stackoverflow.com 3dprinting.stackexchange.com threedprinting.stackexchange.com meta.3dprinting.stackexchange.com ethereum.stackexchange.com meta.ethereum.stackexchange.com latin.stackexchange.com meta.latin.stackexchange.com languagelearning.stackexchange.com meta.languagelearning.stackexchange.com retrocomputing.stackexchange.com meta.retrocomputing.stackexchange.com crafts.stackexchange.com meta.crafts.stackexchange.com korean.stackexchange.com meta.korean.stackexchange.com monero.stackexchange.com meta.monero.stackexchange.com ai.stackexchange.com meta.ai.stackexchange.com esperanto.stackexchange.com meta.esperanto.stackexchange.com sitecore.stackexchange.com meta.sitecore.stackexchange.com
page
: ini akan menjadi string kosong,/
atau/
diikuti oleh string apa pun
Url akan menjadi string yang dibuat dengan menambahkan protocol
, domain
dan page
satu sama lain, dalam urutan itu.
Testcases
Regex Anda harus cocok:
/codegolf//
http://retrocomputing.stackexchange.com
https://facebook.stackoverflow.com/questions/1234
http://meta.nothingtoinstall.com/thisisa404.php?file=command.com
Regex Anda tidak boleh cocok:
http//codegolf.stackexchange.com/
https://meta.stackoverflow.com.fakesite.dodgy/cgi-bin/virus.cgi?vector=apt
file://www.stackoverflow.com/
http://ripoff.com/stackoverflow.com/q/1234/
Regex Anda mungkin cocok:
http://panda.stackexchange.com/
https://www.meta.codegolf.stackexchange.com
http://alpha.beta.charlie.delta.chiphacker.com
https://stackexchange.com/sites/
karena ini dimiliki oleh Stack Exchange Inc. dan karenanya tidak akan rentan terhadap serangan XSS.
Ini adalah tantangan kode-golf , jadi ekspresi reguler terpendek menang!
sumber
Jawaban:
337336333327 byteTidak menggunakan fitur regex mewah, jadi itu harus bekerja dalam rasa regex.
sumber
seasonedadvice
denganbrewadvice
bukan dengan yang lains
kata-kata.359348 byteUji di regexr
sumber
2179 20921966 byteSama persis dengan domain yang terdaftar dan tidak ada yang lain. Saya melakukan sebagian besar kompresi dengan tangan. Saya agak malu bahwa saya menghabiskan banyak waktu untuk itu.
sumber
.com
kompresi yang bisa Anda lakukan?142140334 byte#
sebagai pembatas sehingga/
tidak perlu keluar (disimpan dua byte)sumber