プロローグ
アンチXSSブラウザー拡張機能をインストールした後、Stack SnippetsはStack Exchangeネットワーク全体で突然機能しなくなりました。私はもうStack Overflowから学ぶことができず、ユーザーエクスペリエンスの実際のデモを見て、最悪のことには、プログラミングパズルとコードゴルフで JavaScriptの答えをテストできませんでした!必死に、私は救済策を探し、設定に小さな入力ボックスを見つけました。そこに単一の正規表現を置くことができました。すべてのStack Exchangeサイトをこの小さなボックスに収めることができなかったため、助けを求めました。これがその質問です。
仕事
あなたのタスクは、Stack Overflow Inc.が所有していないドメインとは一致せずに、すべてのStack Exchange WebサイトURLと一致する正規表現を作成することです。
正規表現は、次の部分を持つすべてのURLと一致する必要があります。
protocol
:これはhttp://
またはhttps://
です。domain
:これは、このリストのアイテムになります。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
:これは空の文字列/
か/
、任意の文字列が後に続く
urlは、を互いに追加しprotocol
、その順序で作成した文字列です。domain
page
テストケース
正規表現は一致する必要があります:
/codegolf//
http://retrocomputing.stackexchange.com
https://facebook.stackoverflow.com/questions/1234
http://meta.nothingtoinstall.com/thisisa404.php?file=command.com
正規表現は一致してはなりません:
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/
正規表現が一致する場合があります:
http://panda.stackexchange.com/
https://www.meta.codegolf.stackexchange.com
http://alpha.beta.charlie.delta.chiphacker.com
https://stackexchange.com/sites/
これらはStack Exchange Inc.が所有しているため、XSS攻撃に対して脆弱ではありません。
これはコードゴルフの挑戦なので、最短の正規表現が勝ちます!