Prologo
Dopo aver installato un'estensione del browser anti-XSS, Stack Snippet ha smesso improvvisamente di funzionare su tutta la rete Stack Exchange. Non ho più potuto imparare da Stack Overflow , vedere demo funzionanti sull'esperienza utente e, soprattutto, non ho potuto testare le risposte JavaScript su Puzzle di programmazione e Code Golf ! Ho cercato disperatamente un rimedio e ho trovato una piccola casella di input nelle impostazioni, in cui è possibile inserire una singola regex. Non potevo adattare tutti i siti di Stack Exchange in questa piccola scatola, quindi ho chiesto aiuto. Questa è questa domanda
Compito
Il tuo compito è quello di creare un'espressione regolare che corrisponda a tutti gli URL dei siti Web di Stack Exchange, senza corrispondere ai domini non di proprietà di Stack Overflow Inc ..
La tua espressione regolare deve corrispondere a tutti gli URL con le seguenti parti:
protocol
: o lo saràhttp://
ohttps://
.domain
: questo sarà un elemento di questo elenco: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
: questa sarà la stringa vuota,/
oppure/
seguita da qualsiasi stringa
L'URL sarà la stringa creata aggiungendo protocol
,domain
e page
l'un l'altro, in questo ordine.
Casi test
La tua regex deve corrispondere:
/codegolf//
http://retrocomputing.stackexchange.com
https://facebook.stackoverflow.com/questions/1234
http://meta.nothingtoinstall.com/thisisa404.php?file=command.com
La tua regex non deve corrispondere:
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/
Il tuo regex può corrispondere:
http://panda.stackexchange.com/
https://www.meta.codegolf.stackexchange.com
http://alpha.beta.charlie.delta.chiphacker.com
https://stackexchange.com/sites/
perché questi sono di proprietà di Stack Exchange Inc. e quindi non saranno vulnerabili agli attacchi XSS.
Questa è una sfida di code-golf , quindi vince l'espressione regolare più breve!