Regular Expressions 101

Save & Share

  • Regex Version: ver. 2
  • Update Regex
    ctrl+⇧+s
  • Save new Regex
    ctrl+s
  • Add to Community Library

Flavor

  • PCRE2 (PHP >=7.3)
  • PCRE (PHP <7.3)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java 8
  • .NET 7.0 (C#)
  • Rust
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests

Tools

Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • A single character of: a, b or c
    [abc]
  • A character except: a, b or c
    [^abc]
  • A character in the range: a-z
    [a-z]
  • A character not in the range: a-z
    [^a-z]
  • A character in the range: a-z or A-Z
    [a-zA-Z]
  • Any single character
    .
  • Alternate - match either a or b
    a|b
  • Any whitespace character
    \s
  • Any non-whitespace character
    \S
  • Any digit
    \d
  • Any non-digit
    \D
  • Any word character
    \w
  • Any non-word character
    \W
  • Non-capturing group
    (?:...)
  • Capturing group
    (...)
  • Zero or one of a
    a?
  • Zero or more of a
    a*
  • One or more of a
    a+
  • Exactly 3 of a
    a{3}
  • 3 or more of a
    a{3,}
  • Between 3 and 6 of a
    a{3,6}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression

/
/

Test String

Code Generator

Generated Code

# coding=utf8 # the above tag defines encoding for this document and is for Python 2.x compatibility import re regex = r"(https:\/\/transfer\.sh\/.*\/.*)" test_str = ("travis_fold:start:step_start_instance\n" "Starting instance\n" "✓ selected image \"travis-ci-garnet-trusty-1512502259-986baf0\"\n" "✓ rendered startup script\n" "✓ inserted instance\n" "• sleeping 5s before checking instance insert\n" "• polling for instance insert completion...\n" "✓ instance is ready (6.705s)\n" "travis_fold:end:step_start_instance\n" "travis_fold:start:step_upload_script\n" "Uploading script\n" "• waiting for ssh connectivity............\n" "✓ ssh connectivity established (19.532s)\n" "✓ uploaded script\n" "travis_fold:end:step_upload_script\n" "travis_fold:start:worker_info\n" "Worker information\n" "hostname: 63e714b2-ab45-4f85-92fb-bdfcd32f7d81@1.production-1-worker-org-gce-7j9f\n" "version: v4.1.2 https://github.com/travis-ci/worker/tree/91246b057ccd93649046771f29221f839c19a7d3\n" "instance: travis-job-9d0382a0-0ec7-4947-93f4-9147ac5686b0 travis-ci-garnet-trusty-1512502259-986baf0 (via amqp)\n" "startup: 6.705245298s\n" "travis_fold:end:worker_info\n" "travis_fold:start:system_info\n" "Build system information\n" "Build language: python\n" "Build group: stable\n" "Build dist: trusty\n" "Build id: 433098086\n" "Job id: 433098087\n" "Runtime kernel version: 4.4.0-101-generic\n" "travis-build version: 31bf4c75b\n" "Build image provisioning date and time\n" "Tue Dec 5 19:58:13 UTC 2017\n" "Operating System Details\n" "Distributor ID: Ubuntu\n" "Description: Ubuntu 14.04.5 LTS\n" "Release: 14.04\n" "Codename: trusty\n" "Cookbooks Version\n" "7c2c6a6 https://github.com/travis-ci/travis-cookbooks/tree/7c2c6a6\n" "git version\n" "git version 2.15.1\n" "bash version\n" "GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)\n" "gcc version\n" "gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4\n" "Copyright (C) 2013 Free Software Foundation, Inc.\n" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n" "docker version\n" "Client:\n" " Version: 17.09.0-ce\n" " API version: 1.32\n" " Go version: go1.8.3\n" " Git commit: afdb6d4\n" " Built: Tue Sep 26 22:42:38 2017\n" " OS/Arch: linux/amd64\n\n" "Server:\n" " Version: 17.09.0-ce\n" " API version: 1.32 (minimum version 1.12)\n" " Go version: go1.8.3\n" " Git commit: afdb6d4\n" " Built: Tue Sep 26 22:41:20 2017\n" " OS/Arch: linux/amd64\n" " Experimental: false\n" "clang version\n" "clang version 5.0.0 (tags/RELEASE_500/final)\n" "Target: x86_64-unknown-linux-gnu\n" "Thread model: posix\n" "InstalledDir: /usr/local/clang-5.0.0/bin\n" "jq version\n" "jq-1.5\n" "bats version\n" "Bats 0.4.0\n" "shellcheck version\n" "0.4.6\n" "shfmt version\n" "v2.0.0\n" "ccache version\n" "ccache version 3.1.9\n\n" "Copyright (C) 2002-2007 Andrew Tridgell\n" "Copyright (C) 2009-2011 Joel Rosdahl\n\n" "This program is free software; you can redistribute it and/or modify it under\n" "the terms of the GNU General Public License as published by the Free Software\n" "Foundation; either version 3 of the License, or (at your option) any later\n" "version.\n" "cmake version\n" "cmake version 3.9.2\n\n" "CMake suite maintained and supported by Kitware (kitware.com/cmake).\n" "heroku version\n" "heroku-cli/6.14.39-addc925 (linux-x64) node-v9.2.0\n" "imagemagick version\n" "Version: ImageMagick 6.7.7-10 2017-07-31 Q16 http://www.imagemagick.org\n" "md5deep version\n" "4.2\n" "mercurial version\n" "Mercurial Distributed SCM (version 4.2.2)\n" "(see https://mercurial-scm.org for more information)\n\n" "Copyright (C) 2005-2017 Matt Mackall and others\n" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" "mysql version\n" "mysql Ver 14.14 Distrib 5.6.33, for debian-linux-gnu (x86_64) using EditLine wrapper\n" "openssl version\n" "OpenSSL 1.0.1f 6 Jan 2014\n" "packer version\n" "Packer v1.0.2\n\n" "Your version of Packer is out of date! The latest version\n" "is 1.1.2. You can update by downloading from www.packer.io\n" "postgresql client version\n" "psql (PostgreSQL) 9.6.6\n" "ragel version\n" "Ragel State Machine Compiler version 6.8 Feb 2013\n" "Copyright (c) 2001-2009 by Adrian Thurston\n" "subversion version\n" "svn, version 1.8.8 (r1568071)\n" " compiled Aug 10 2017, 17:20:39 on x86_64-pc-linux-gnu\n\n" "Copyright (C) 2013 The Apache Software Foundation.\n" "This software consists of contributions made by many people;\n" "see the NOTICE file for more information.\n" "Subversion is open source software, see http://subversion.apache.org/\n\n" "The following repository access (RA) modules are available:\n\n" "* ra_svn : Module for accessing a repository using the svn network protocol.\n" " - with Cyrus SASL authentication\n" " - handles 'svn' scheme\n" "* ra_local : Module for accessing a repository on local disk.\n" " - handles 'file' scheme\n" "* ra_serf : Module for accessing a repository via WebDAV protocol using serf.\n" " - using serf 1.3.3\n" " - handles 'http' scheme\n" " - handles 'https' scheme\n\n" "sudo version\n" "Sudo version 1.8.9p5\n" "Configure options: --prefix=/usr -v --with-all-insults --with-pam --with-fqdn --with-logging=syslog --with-logfac=authpriv --with-env-editor --with-editor=/usr/bin/editor --with-timeout=15 --with-password-timeout=0 --with-passprompt=[sudo] password for %p: --without-lecture --with-tty-tickets --disable-root-mailer --enable-admin-flag --with-sendmail=/usr/sbin/sendmail --with-timedir=/var/lib/sudo --mandir=/usr/share/man --libexecdir=/usr/lib/sudo --with-sssd --with-sssd-lib=/usr/lib/x86_64-linux-gnu --with-selinux\n" "Sudoers policy plugin version 1.8.9p5\n" "Sudoers file grammar version 43\n\n" "Sudoers path: /etc/sudoers\n" "Authentication methods: 'pam'\n" "Syslog facility if syslog is being used for logging: authpriv\n" "Syslog priority to use when user authenticates successfully: notice\n" "Syslog priority to use when user authenticates unsuccessfully: alert\n" "Send mail if the user is not in sudoers\n" "Use a separate timestamp for each user/tty combo\n" "Lecture user the first time they run sudo\n" "Root may run sudo\n" "Allow some information gathering to give useful error messages\n" "Require fully-qualified hostnames in the sudoers file\n" "Visudo will honor the EDITOR environment variable\n" "Set the LOGNAME and USER environment variables\n" "Length at which to wrap log file lines (0 for no wrap): 80\n" "Authentication timestamp timeout: 15.0 minutes\n" "Password prompt timeout: 0.0 minutes\n" "Number of tries to enter a password: 3\n" "Umask to use or 0777 to use user's: 022\n" "Path to mail program: /usr/sbin/sendmail\n" "Flags for mail program: -t\n" "Address to send mail to: root\n" "Subject line for mail messages: *** SECURITY information for %h ***\n" "Incorrect password message: Sorry, try again.\n" "Path to authentication timestamp dir: /var/lib/sudo\n" "Default password prompt: [sudo] password for %p: \n" "Default user to run commands as: root\n" "Value to override user's $PATH with: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin\n" "Path to the editor for use by visudo: /usr/bin/editor\n" "When to require a password for 'list' pseudocommand: any\n" "When to require a password for 'verify' pseudocommand: all\n" "File descriptors >= 3 will be closed before executing a command\n" "Environment variables to check for sanity:\n" " TZ\n" " TERM\n" " LINGUAS\n" " LC_*\n" " LANGUAGE\n" " LANG\n" " COLORTERM\n" "Environment variables to remove:\n" " RUBYOPT\n" " RUBYLIB\n" " PYTHONUSERBASE\n" " PYTHONINSPECT\n" " PYTHONPATH\n" " PYTHONHOME\n" " TMPPREFIX\n" " ZDOTDIR\n" " READNULLCMD\n" " NULLCMD\n" " FPATH\n" " PERL5DB\n" " PERL5OPT\n" " PERL5LIB\n" " PERLLIB\n" " PERLIO_DEBUG \n" " JAVA_TOOL_OPTIONS\n" " SHELLOPTS\n" " GLOBIGNORE\n" " PS4\n" " BASH_ENV\n" " ENV\n" " TERMCAP\n" " TERMPATH\n" " TERMINFO_DIRS\n" " TERMINFO\n" " _RLD*\n" " LD_*\n" " PATH_LOCALE\n" " NLSPATH\n" " HOSTALIASES\n" " RES_OPTIONS\n" " LOCALDOMAIN\n" " CDPATH\n" " IFS\n" "Environment variables to preserve:\n" " JAVA_HOME\n" " TRAVIS\n" " CI\n" " DEBIAN_FRONTEND\n" " XAUTHORIZATION\n" " XAUTHORITY\n" " PS2\n" " PS1\n" " PATH\n" " LS_COLORS\n" " KRB5CCNAME\n" " HOSTNAME\n" " HOME\n" " DISPLAY\n" " COLORS\n" "Locale to use while parsing sudoers: C\n" "Directory in which to store input/output logs: /var/log/sudo-io\n" "File in which to store the input/output log: %{seq}\n" "Add an entry to the utmp/utmpx file when allocating a pty\n" "PAM service name to use\n" "PAM service name to use for login shells\n" "Create a new PAM session for the command to run in\n" "Maximum I/O log sequence number: 0\n\n" "Local IP address and netmask pairs:\n" " 10.240.0.28/255.255.255.255\n" " 172.17.0.1/255.255.0.0\n\n" "Sudoers I/O plugin version 1.8.9p5\n" "gzip version\n" "gzip 1.6\n" "Copyright (C) 2007, 2010, 2011 Free Software Foundation, Inc.\n" "Copyright (C) 1993 Jean-loup Gailly.\n" "This is free software. You may redistribute copies of it under the terms of\n" "the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.\n" "There is NO WARRANTY, to the extent permitted by law.\n\n" "Written by Jean-loup Gailly.\n" "zip version\n" "Copyright (c) 1990-2008 Info-ZIP - Type 'zip \"-L\"' for software license.\n" "This is Zip 3.0 (July 5th 2008), by Info-ZIP.\n" "Currently maintained by E. Gordon. Please send bug reports to\n" "the authors using the web page at www.info-zip.org; see README for details.\n\n" "Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip,\n" "as of above date; see http://www.info-zip.org/ for other sites.\n\n" "Compiled with gcc 4.8.2 for Unix (Linux ELF) on Oct 21 2013.\n\n" "Zip special compilation options:\n" " USE_EF_UT_TIME (store Universal Time)\n" " BZIP2_SUPPORT (bzip2 library version 1.0.6, 6-Sept-2010)\n" " bzip2 code and library copyright (c) Julian R Seward\n" " (See the bzip2 license for terms of use)\n" " SYMLINK_SUPPORT (symbolic links supported)\n" " LARGE_FILE_SUPPORT (can read and write large files on file system)\n" " ZIP64_SUPPORT (use Zip64 to store large files in archives)\n" " UNICODE_SUPPORT (store and read UTF-8 Unicode paths)\n" " STORE_UNIX_UIDs_GIDs (store UID/GID sizes/values using new extra field)\n" " UIDGID_NOT_16BIT (old Unix 16-bit UID/GID extra field not used)\n" " [encryption, version 2.91 of 05 Jan 2007] (modified for Zip 3)\n\n" "Encryption notice:\n" " The encryption code of this program is not copyrighted and is\n" " put in the public domain. It was originally written in Europe\n" " and, to the best of our knowledge, can be freely distributed\n" " in both source and object forms from any country, including\n" " the USA under License Exception TSU of the U.S. Export\n" " Administration Regulations (section 740.13(e)) of 6 June 2002.\n\n" "Zip environment options:\n" " ZIP: [none]\n" " ZIPOPT: [none]\n" "vim version\n" "VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:43:18)\n" "Included patches: 1-52\n" "Extra patches: 8.0.0056\n" "Modified by pkg-vim-maintainers@lists.alioth.debian.org\n" "Compiled by buildd@\n" "Huge version without GUI. Features included (+) or not (-):\n" "+acl +farsi +mouse_netterm +syntax\n" "+arabic +file_in_path +mouse_sgr +tag_binary\n" "+autocmd +find_in_path -mouse_sysmouse +tag_old_static\n" "-balloon_eval +float +mouse_urxvt -tag_any_white\n" "-browse +folding +mouse_xterm -tcl\n" "++builtin_terms -footer +multi_byte +terminfo\n" "+byte_offset +fork() +multi_lang +termresponse\n" "+cindent +gettext -mzscheme +textobjects\n" "-clientserver -hangul_input +netbeans_intg +title\n" "-clipboard +iconv +path_extra -toolbar\n" "+cmdline_compl +insert_expand -perl +user_commands\n" "+cmdline_hist +jumplist +persistent_undo +vertsplit\n" "+cmdline_info +keymap +postscript +virtualedit\n" "+comments +langmap +printer +visual\n" "+conceal +libcall +profile +visualextra\n" "+cryptv +linebreak +python +viminfo\n" "+cscope +lispindent -python3 +vreplace\n" "+cursorbind +listcmds +quickfix +wildignore\n" "+cursorshape +localmap +reltime +wildmenu\n" "+dialog_con -lua +rightleft +windows\n" "+diff +menu -ruby +writebackup\n" "+digraphs +mksession +scrollbind -X11\n" "-dnd +modify_fname +signs -xfontset\n" "-ebcdic +mouse +smartindent -xim\n" "+emacs_tags -mouseshape -sniff -xsmp\n" "+eval +mouse_dec +startuptime -xterm_clipboard\n" "+ex_extra +mouse_gpm +statusline -xterm_save\n" "+extra_search -mouse_jsbterm -sun_workshop -xpm\n" " system vimrc file: \"$VIM/vimrc\"\n" " user vimrc file: \"$HOME/.vimrc\"\n" " 2nd user vimrc file: \"~/.vim/vimrc\"\n" " user exrc file: \"$HOME/.exrc\"\n" " fall-back for $VIM: \"/usr/share/vim\"\n" "Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 \n" "Linking: gcc -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -o vim -lm -ltinfo -lnsl -lselinux -lacl -lattr -lgpm -ldl -L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions \n" "iptables version\n" "iptables v1.4.21\n" "curl version\n" "curl 7.35.0 (x86_64-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3\n" "wget version\n" "GNU Wget 1.15 built on linux-gnu.\n" "rsync version\n" "rsync version 3.1.0 protocol version 31\n" "gimme version\n" "v1.2.0\n" "nvm version\n" "0.33.6\n" "perlbrew version\n" "/home/travis/perl5/perlbrew/bin/perlbrew - App::perlbrew/0.80\n" "phpenv version\n" "rbenv 1.1.1-25-g6aa70b6\n" "rvm version\n" "rvm 1.29.3 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]\n" "default ruby version\n" "ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]\n" "CouchDB version\n" "couchdb 1.6.1\n" "ElasticSearch version\n" "5.5.0\n" "Installed Firefox version\n" "firefox 56.0.2\n" "MongoDB version\n" "MongoDB 3.4.10\n" "PhantomJS version\n" "2.1.1\n" "Pre-installed PostgreSQL versions\n" "9.2.24\n" "9.3.20\n" "9.4.15\n" "9.5.10\n" "9.6.6\n" "RabbitMQ Version\n" "3.6.14\n" "Redis version\n" "redis-server 4.0.6\n" "riak version\n" "2.2.3\n" "Pre-installed Go versions\n" "1.7.4\n" "ant version\n" "Apache Ant(TM) version 1.9.3 compiled on April 8 2014\n" "mvn version\n" "Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T07:58:13Z)\n" "Maven home: /usr/local/maven-3.5.2\n" "Java version: 1.8.0_151, vendor: Oracle Corporation\n" "Java home: /usr/lib/jvm/java-8-oracle/jre\n" "Default locale: en_US, platform encoding: UTF-8\n" "OS name: \"linux\", version: \"4.4.0-98-generic\", arch: \"amd64\", family: \"unix\"\n" "gradle version\n\n" "------------------------------------------------------------\n" "Gradle 4.0.1\n" "------------------------------------------------------------\n\n" "Build time: 2017-07-07 14:02:41 UTC\n" "Revision: 38e5dc0f772daecca1d2681885d3d85414eb6826\n\n" "Groovy: 2.4.11\n" "Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015\n" "JVM: 1.8.0_151 (Oracle Corporation 25.151-b12)\n" "OS: Linux 4.4.0-98-generic amd64\n\n" "lein version\n" "Leiningen 2.8.1 on Java 1.8.0_151 Java HotSpot(TM) 64-Bit Server VM\n" "Pre-installed Node.js versions\n" "v4.8.6\n" "v6.12.0\n" "v6.12.1\n" "v8.9\n" "v8.9.1\n" "phpenv versions\n" " system\n" " 5.6\n" "* 5.6.32 (set by /home/travis/.phpenv/version)\n" " 7.0\n" " 7.0.25\n" " 7.1\n" " 7.1.11\n" " hhvm\n" " hhvm-stable\n" "composer --version\n" "Composer version 1.5.2 2017-09-11 16:59:25\n" "Pre-installed Ruby versions\n" "ruby-2.2.7\n" "ruby-2.3.4\n" "ruby-2.4.1\n" "travis_fold:end:system_info\n" "\n" "Network availability confirmed.\n\n" "Setting APT mirror in /etc/apt/sources.list: http://us-central1.gce.archive.ubuntu.com/ubuntu/\n\n" "travis_fold:start:git.checkout\n" "travis_time:start:192b9a85\n" "$ git clone --depth=50 https://github.com/SilleBille/test-travis.git SilleBille/test-travis\n" "Cloning into 'SilleBille/test-travis'...\n" "remote: Enumerating objects: 26, done.\n" "remote: Counting objects: 3% (1/26) \n" "remote: Counting objects: 7% (2/26) \n" "remote: Counting objects: 11% (3/26) \n" "remote: Counting objects: 15% (4/26) \n" "remote: Counting objects: 19% (5/26) \n" "remote: Counting objects: 23% (6/26) \n" "remote: Counting objects: 26% (7/26) \n" "remote: Counting objects: 30% (8/26) \n" "remote: Counting objects: 34% (9/26) \n" "remote: Counting objects: 38% (10/26) \n" "remote: Counting objects: 42% (11/26) \n" "remote: Counting objects: 46% (12/26) \n" "remote: Counting objects: 50% (13/26) \n" "remote: Counting objects: 53% (14/26) \n" "remote: Counting objects: 57% (15/26) \n" "remote: Counting objects: 61% (16/26) \n" "remote: Counting objects: 65% (17/26) \n" "remote: Counting objects: 69% (18/26) \n" "remote: Counting objects: 73% (19/26) \n" "remote: Counting objects: 76% (20/26) \n" "remote: Counting objects: 80% (21/26) \n" "remote: Counting objects: 84% (22/26) \n" "remote: Counting objects: 88% (23/26) \n" "remote: Counting objects: 92% (24/26) \n" "remote: Counting objects: 96% (25/26) \n" "remote: Counting objects: 100% (26/26) \n" "remote: Counting objects: 100% (26/26), done.\n" "remote: Compressing objects: 5% (1/19) \n" "remote: Compressing objects: 10% (2/19) \n" "remote: Compressing objects: 15% (3/19) \n" "remote: Compressing objects: 21% (4/19) \n" "remote: Compressing objects: 26% (5/19) \n" "remote: Compressing objects: 31% (6/19) \n" "remote: Compressing objects: 36% (7/19) \n" "remote: Compressing objects: 42% (8/19) \n" "remote: Compressing objects: 47% (9/19) \n" "remote: Compressing objects: 52% (10/19) \n" "remote: Compressing objects: 57% (11/19) \n" "remote: Compressing objects: 63% (12/19) \n" "remote: Compressing objects: 68% (13/19) \n" "remote: Compressing objects: 73% (14/19) \n" "remote: Compressing objects: 78% (15/19) \n" "remote: Compressing objects: 84% (16/19) \n" "remote: Compressing objects: 89% (17/19) \n" "remote: Compressing objects: 94% (18/19) \n" "remote: Compressing objects: 100% (19/19) \n" "remote: Compressing objects: 100% (19/19), done.\n" "remote: Total 26 (delta 6), reused 23 (delta 4), pack-reused 0\n" "Unpacking objects: 3% (1/26) \n" "Unpacking objects: 7% (2/26) \n" "Unpacking objects: 11% (3/26) \n" "Unpacking objects: 15% (4/26) \n" "Unpacking objects: 19% (5/26) \n" "Unpacking objects: 23% (6/26) \n" "Unpacking objects: 26% (7/26) \n" "Unpacking objects: 30% (8/26) \n" "Unpacking objects: 34% (9/26) \n" "Unpacking objects: 38% (10/26) \n" "Unpacking objects: 42% (11/26) \n" "Unpacking objects: 46% (12/26) \n" "Unpacking objects: 50% (13/26) \n" "Unpacking objects: 53% (14/26) \n" "Unpacking objects: 57% (15/26) \n" "Unpacking objects: 61% (16/26) \n" "Unpacking objects: 65% (17/26) \n" "Unpacking objects: 69% (18/26) \n" "Unpacking objects: 73% (19/26) \n" "Unpacking objects: 76% (20/26) \n" "Unpacking objects: 80% (21/26) \n" "Unpacking objects: 84% (22/26) \n" "Unpacking objects: 88% (23/26) \n" "Unpacking objects: 92% (24/26) \n" "Unpacking objects: 96% (25/26) \n" "Unpacking objects: 100% (26/26) \n" "Unpacking objects: 100% (26/26), done.\n\n" "travis_time:end:192b9a85:start=1537901122909466652,finish=1537901123476945079,duration=567478427\n" "$ cd SilleBille/test-travis\n" "travis_time:start:055eeb01\n" "$ git fetch origin +refs/pull/11/merge:\n" "remote: Enumerating objects: 21, done.\n" "remote: Counting objects: 4% (1/21) \n" "remote: Counting objects: 9% (2/21) \n" "remote: Counting objects: 14% (3/21) \n" "remote: Counting objects: 19% (4/21) \n" "remote: Counting objects: 23% (5/21) \n" "remote: Counting objects: 28% (6/21) \n" "remote: Counting objects: 33% (7/21) \n" "remote: Counting objects: 38% (8/21) \n" "remote: Counting objects: 42% (9/21) \n" "remote: Counting objects: 47% (10/21) \n" "remote: Counting objects: 52% (11/21) \n" "remote: Counting objects: 57% (12/21) \n" "remote: Counting objects: 61% (13/21) \n" "remote: Counting objects: 66% (14/21) \n" "remote: Counting objects: 71% (15/21) \n" "remote: Counting objects: 76% (16/21) \n" "remote: Counting objects: 80% (17/21) \n" "remote: Counting objects: 85% (18/21) \n" "remote: Counting objects: 90% (19/21) \n" "remote: Counting objects: 95% (20/21) \n" "remote: Counting objects: 100% (21/21) \n" "remote: Counting objects: 100% (21/21), done.\n" "remote: Compressing objects: 8% (1/12) \n" "remote: Compressing objects: 16% (2/12) \n" "remote: Compressing objects: 25% (3/12) \n" "remote: Compressing objects: 33% (4/12) \n" "remote: Compressing objects: 41% (5/12) \n" "remote: Compressing objects: 50% (6/12) \n" "remote: Compressing objects: 58% (7/12) \n" "remote: Compressing objects: 66% (8/12) \n" "remote: Compressing objects: 75% (9/12) \n" "remote: Compressing objects: 83% (10/12) \n" "remote: Compressing objects: 91% (11/12) \n" "remote: Compressing objects: 100% (12/12) \n" "remote: Compressing objects: 100% (12/12), done.\n" "remote: Total 18 (delta 7), reused 16 (delta 6), pack-reused 0\n" "Unpacking objects: 5% (1/18) \n" "Unpacking objects: 11% (2/18) \n" "Unpacking objects: 16% (3/18) \n" "Unpacking objects: 22% (4/18) \n" "Unpacking objects: 27% (5/18) \n" "Unpacking objects: 33% (6/18) \n" "Unpacking objects: 38% (7/18) \n" "Unpacking objects: 44% (8/18) \n" "Unpacking objects: 50% (9/18) \n" "Unpacking objects: 55% (10/18) \n" "Unpacking objects: 61% (11/18) \n" "Unpacking objects: 66% (12/18) \n" "Unpacking objects: 72% (13/18) \n" "Unpacking objects: 77% (14/18) \n" "Unpacking objects: 83% (15/18) \n" "Unpacking objects: 88% (16/18) \n" "Unpacking objects: 94% (17/18) \n" "Unpacking objects: 100% (18/18) \n" "Unpacking objects: 100% (18/18), done.\n" "From https://github.com/SilleBille/test-travis\n" " * branch refs/pull/11/merge -> FETCH_HEAD\n\n" "travis_time:end:055eeb01:start=1537901123480817016,finish=1537901123872350932,duration=391533916\n" "$ git checkout -qf FETCH_HEAD\n" "travis_fold:end:git.checkout\n" "\n" "Setting environment variables from .travis.yml\n" "$ export TASK=\"Task1\"\n\n" "travis_time:start:14bd0804\n" "$ source ~/virtualenv/python2.7/bin/activate\n\n" "travis_time:end:14bd0804:start=1537901123882328477,finish=1537901123891924014,duration=9595537\n" "travis_fold:start:cache.1\n" "Setting up build cache\n" "$ export CASHER_DIR=${TRAVIS_HOME}/.casher\n" "travis_time:start:16d5e074\n" "$ Installing caching utilities\n\n" "travis_time:end:16d5e074:start=1537901128543464146,finish=1537901128695850343,duration=152386197\n" "travis_time:start:00e0e959\n" "\n" "travis_time:end:00e0e959:start=1537901128702988516,finish=1537901128707201183,duration=4212667\n" "travis_time:start:060654a9\n" "attempting to download cache archive\n" "fetching PR.11/cache-linux-trusty-5c467cfbf24ba6f139723d9ca88f924f57c62fa3772700d1dd0faa81771b5340--python-2.7.tgz\n" "fetching PR.11/cache--python-2.7.tgz\n" "fetching master/cache-linux-trusty-5c467cfbf24ba6f139723d9ca88f924f57c62fa3772700d1dd0faa81771b5340--python-2.7.tgz\n" "found cache\n\n" "travis_time:end:060654a9:start=1537901128712560802,finish=1537901134289525147,duration=5576964345\n" "travis_fold:end:cache.1\n" "travis_fold:start:cache.pip\n" "\n" "travis_time:start:18556383\n" "\n" "travis_time:end:18556383:start=1537901134295561956,finish=1537901134300078308,duration=4516352\n" "travis_time:start:0b20d824\n" "adding /home/travis/.cache/pip to cache\n\n" "travis_time:end:0b20d824:start=1537901134305689743,finish=1537901136614353863,duration=2308664120\n" "travis_fold:end:cache.pip\n" "$ python --version\n" "Python 2.7.14\n" "$ pip --version\n" "pip 9.0.1 from /home/travis/virtualenv/python2.7.14/lib/python2.7/site-packages (python 2.7)\n" "Could not locate requirements.txt. Override the install: key in your .travis.yml to install dependencies.\n" "travis_time:start:0cfbd959\n" "$ ./random_script.sh 1\n" "From inside script\n" "https://transfer.sh/JKdZg/pkbuild.txt\n" "https://transfer.sh/nfs2l/var_log.tar\n" "https://transfer.sh/PsafD3/systemd_journal.txt\n" "travis_time:end:0cfbd959:start=1537901137500353223,finish=1537901137505255351,duration=4902128\n" "\n" "The command \"./random_script.sh 1\" exited with 1.\n" "travis_fold:start:cache.2\n" "store build cache\n" "travis_time:start:2bc73c43\n" "\n" "travis_time:end:2bc73c43:start=1537901137510607609,finish=1537901137514890762,duration=4283153\n" "travis_time:start:03a592cb\n" "nothing changed, not updating cache\n\n" "travis_time:end:03a592cb:start=1537901137520346594,finish=1537901138854264777,duration=1333918183\n" "travis_fold:end:cache.2\n" "\n" "Done. Your build exited with 1.\n") matches = re.search(regex, test_str) if matches: print ("Match was found at {start}-{end}: {match}".format(start = matches.start(), end = matches.end(), match = matches.group())) for groupNum in range(0, len(matches.groups())): groupNum = groupNum + 1 print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = matches.start(groupNum), end = matches.end(groupNum), group = matches.group(groupNum))) # Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.

Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html