Prolog
Nach der Installation einer Anti-XSS-Browsererweiterung funktionierten Stack Snippets plötzlich nicht mehr im gesamten Stack Exchange-Netzwerk. Ich konnte nicht mehr von Stack Overflow lernen , funktionierende Demos zu User Experience sehen und, schlimmstenfalls, keine JavaScript-Antworten zu Programmierpuzzles und Code Golf testen ! Verzweifelt suchte ich nach einem Mittel und fand in den Einstellungen ein kleines Eingabefeld, in das eine einzelne Regex eingefügt werden konnte. Ich konnte nicht alle Stack Exchange-Sites in dieser kleinen Box unterbringen und bat um Hilfe. Das ist diese Frage.
Aufgabe
Ihre Aufgabe ist es, einen regulären Ausdruck zu erstellen, der mit allen URLs der Stack Exchange-Website übereinstimmt, ohne Domänen zuzuordnen, die nicht zu Stack Overflow Inc. gehören.
Ihr regulärer Ausdruck muss mit allen URLs mit den folgenden Teilen übereinstimmen:
protocol
: Dies wird entwederhttp://
oderhttps://
.domain
: Dies wird ein Artikel aus dieser Liste sein: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
: Dies ist entweder die leere Zeichenfolge/
oder/
eine beliebige Zeichenfolge
Die URL wird die Zeichenfolge durch Anfügen erstellt werden protocol
, domain
und page
miteinander in dieser Reihenfolge.
Testfälle
Ihr regulärer Ausdruck muss übereinstimmen mit:
/codegolf//
http://retrocomputing.stackexchange.com
https://facebook.stackoverflow.com/questions/1234
http://meta.nothingtoinstall.com/thisisa404.php?file=command.com
Ihr regulärer Ausdruck darf nicht übereinstimmen:
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/
Ihr regulärer Ausdruck könnte passen:
http://panda.stackexchange.com/
https://www.meta.codegolf.stackexchange.com
http://alpha.beta.charlie.delta.chiphacker.com
https://stackexchange.com/sites/
da diese im Besitz von Stack Exchange Inc. sind und daher nicht für XSS-Angriffe anfällig sind.
Dies ist eine Code-Golf- Herausforderung, daher gewinnt der kürzeste reguläre Ausdruck!