Regular Expressions 101

Save & Share

  • Regex Version: ver. 1
  • 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
No Match

@"
"
gm

Test String

Code Generator

Generated Code

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String[] args) { final String regex = "(^.+@2.+.$)"; final String string = "applause.mp3\n" + "approachcircle.png\n" + "approachcircle@2x.png\n" + "arrow-warning.png\n" + "arrow-warning@2x.png\n" + "button-left.png\n" + "button-left@2x.png\n" + "button-middle.png\n" + "button-middle@2x.png\n" + "button-right.png\n" + "button-right@2x.png\n" + "check-off.wav\n" + "check-on.wav\n" + "combobreak.wav\n" + "combobreakorig.mp3\n" + "comboburst.png\n" + "comboburst@2x.png\n" + "count.wav\n" + "count1.png\n" + "count1@2x.png\n" + "count1s.wav\n" + "count2.png\n" + "count2@2x.png\n" + "count2@2x2.png\n" + "count2s.wav\n" + "count3.png\n" + "count3@2x.png\n" + "count3s.wav\n" + "cursor-smoke.png\n" + "cursor-smoke@2x.png\n" + "cursor.png\n" + "cursor@2x.png\n" + "cursor@2xcalcifer.png\n" + "cursor@2xheart.png\n" + "cursor@2xsimple.png\n" + "cursor@2xsimples.png\n" + "cursormiddle@2x - if you want a long trail.png\n" + "cursortrail.png\n" + "cursortrail@2x.png\n" + "cursortrail@2x1.png\n" + "cursortrail@2xcalcifer.png\n" + "cursortrail@2xheart.png\n" + "cursortrail@2xsimple.png\n" + "cursortrail@2xsimpleslong.png\n" + "default-0.png\n" + "default-0@2x.png\n" + "default-1.png\n" + "default-1@2x.png\n" + "default-2.png\n" + "default-2@2x.png\n" + "default-3.png\n" + "default-3@2x.png\n" + "default-4.png\n" + "default-4@2x.png\n" + "default-5.png\n" + "default-5@2x.png\n" + "default-6.png\n" + "default-6@2x.png\n" + "default-7.png\n" + "default-7@2x.png\n" + "default-8.png\n" + "default-8@2x.png\n" + "default-9.png\n" + "default-9@2x.png\n" + "drum-hitclap.wav\n" + "drum-hitfinish.wav\n" + "drum-hitnormaedl.wav\n" + "drum-hitnormal.wav\n" + "drum-hitnormalh.wav\n" + "drum-hitwhistle.wav\n" + "drum-sliderslide.wav\n" + "drum-slidertick.wav\n" + "drum-sliderwhistle.wav\n" + "fail-background.png\n" + "fail-background@2x.png\n" + "fail-background@2xughmyeyees.png\n" + "failsound.mp3\n" + "failsound_song_for_good_computers.mp3\n" + "filelist.txt\n" + "followpoint-0.png\n" + "followpoint-1.png\n" + "followpoint-10.png\n" + "followpoint-11.png\n" + "followpoint-12.png\n" + "followpoint-13.png\n" + "followpoint-14.png\n" + "followpoint-15.png\n" + "followpoint-2.png\n" + "followpoint-3.png\n" + "followpoint-4.png\n" + "followpoint-5.png\n" + "followpoint-6.png\n" + "followpoint-7.png\n" + "followpoint-8.png\n" + "followpoint-9.png\n" + "followpoint.png\n" + "follows\n" + "go.png\n" + "go@2x.png\n" + "gos.wav\n" + "hit0-0.png\n" + "hit0-0@2x.png\n" + "hit0-1.png\n" + "hit0-10.png\n" + "hit0-10@2x.png\n" + "hit0-11.png\n" + "hit0-11@2x.png\n" + "hit0-12.png\n" + "hit0-12@2x.png\n" + "hit0-13.png\n" + "hit0-13@2x.png\n" + "hit0-14.png\n" + "hit0-14@2x.png\n" + "hit0-15.png\n" + "hit0-15@2x.png\n" + "hit0-16.png\n" + "hit0-16@2x.png\n" + "hit0-17.png\n" + "hit0-17@2x.png\n" + "hit0-18.png\n" + "hit0-18@2x.png\n" + "hit0-19.png\n" + "hit0-19@2x.png\n" + "hit0-1@2x.png\n" + "hit0-2.png\n" + "hit0-20.png\n" + "hit0-20@2x.png\n" + "hit0-21.png\n" + "hit0-21@2x.png\n" + "hit0-22.png\n" + "hit0-22@2x.png\n" + "hit0-23.png\n" + "hit0-23@2x.png\n" + "hit0-24.png\n" + "hit0-24@2x.png\n" + "hit0-25.png\n" + "hit0-25@2x.png\n" + "hit0-26.png\n" + "hit0-26@2x.png\n" + "hit0-27.png\n" + "hit0-27@2x.png\n" + "hit0-28.png\n" + "hit0-28@2x.png\n" + "hit0-29.png\n" + "hit0-29@2x.png\n" + "hit0-2@2x.png\n" + "hit0-3.png\n" + "hit0-30.png\n" + "hit0-30@2x.png\n" + "hit0-31.png\n" + "hit0-31@2x.png\n" + "hit0-32.png\n" + "hit0-32@2x.png\n" + "hit0-33.png\n" + "hit0-33@2x.png\n" + "hit0-34.png\n" + "hit0-34@2x.png\n" + "hit0-35.png\n" + "hit0-35@2x.png\n" + "hit0-36.png\n" + "hit0-36@2x.png\n" + "hit0-37.png\n" + "hit0-37@2x.png\n" + "hit0-38.png\n" + "hit0-38@2x.png\n" + "hit0-39.png\n" + "hit0-39@2x.png\n" + "hit0-3@2x.png\n" + "hit0-4.png\n" + "hit0-40.png\n" + "hit0-40@2x.png\n" + "hit0-41.png\n" + "hit0-41@2x.png\n" + "hit0-42.png\n" + "hit0-42@2x.png\n" + "hit0-43.png\n" + "hit0-43@2x.png\n" + "hit0-44.png\n" + "hit0-44@2x.png\n" + "hit0-45.png\n" + "hit0-45@2x.png\n" + "hit0-46.png\n" + "hit0-46@2x.png\n" + "hit0-47.png\n" + "hit0-47@2x.png\n" + "hit0-48.png\n" + "hit0-48@2x.png\n" + "hit0-49.png\n" + "hit0-49@2x.png\n" + "hit0-4@2x.png\n" + "hit0-5.png\n" + "hit0-5@2x.png\n" + "hit0-6.png\n" + "hit0-6@2x.png\n" + "hit0-7.png\n" + "hit0-7@2x.png\n" + "hit0-8.png\n" + "hit0-8@2x.png\n" + "hit0-9.png\n" + "hit0-9@2x.png\n" + "hit0.png\n" + "hit0@2x.png\n" + "hit100-0.png\n" + "hit100-0@2x.png\n" + "hit100-1.png\n" + "hit100-10.png\n" + "hit100-10@2x.png\n" + "hit100-11.png\n" + "hit100-11@2x.png\n" + "hit100-12.png\n" + "hit100-12@2x.png\n" + "hit100-13.png\n" + "hit100-13@2x.png\n" + "hit100-14.png\n" + "hit100-14@2x.png\n" + "hit100-15.png\n" + "hit100-15@2x.png\n" + "hit100-16.png\n" + "hit100-16@2x.png\n" + "hit100-17.png\n" + "hit100-17@2x.png\n" + "hit100-18.png\n" + "hit100-18@2x.png\n" + "hit100-19.png\n" + "hit100-19@2x.png\n" + "hit100-1@2x.png\n" + "hit100-2.png\n" + "hit100-20.png\n" + "hit100-20@2x.png\n" + "hit100-21.png\n" + "hit100-21@2x.png\n" + "hit100-22.png\n" + "hit100-22@2x.png\n" + "hit100-23.png\n" + "hit100-23@2x.png\n" + "hit100-24.png\n" + "hit100-24@2x.png\n" + "hit100-25.png\n" + "hit100-25@2x.png\n" + "hit100-26.png\n" + "hit100-26@2x.png\n" + "hit100-27.png\n" + "hit100-27@2x.png\n" + "hit100-28.png\n" + "hit100-28@2x.png\n" + "hit100-29.png\n" + "hit100-29@2x.png\n" + "hit100-2@2x.png\n" + "hit100-3.png\n" + "hit100-30.png\n" + "hit100-30@2x.png\n" + "hit100-31.png\n" + "hit100-31@2x.png\n" + "hit100-32.png\n" + "hit100-32@2x.png\n" + "hit100-33.png\n" + "hit100-33@2x.png\n" + "hit100-34.png\n" + "hit100-34@2x.png\n" + "hit100-35.png\n" + "hit100-35@2x.png\n" + "hit100-36.png\n" + "hit100-36@2x.png\n" + "hit100-37.png\n" + "hit100-37@2x.png\n" + "hit100-38.png\n" + "hit100-38@2x.png\n" + "hit100-39.png\n" + "hit100-39@2x.png\n" + "hit100-3@2x.png\n" + "hit100-4.png\n" + "hit100-40.png\n" + "hit100-40@2x.png\n" + "hit100-41.png\n" + "hit100-41@2x.png\n" + "hit100-42.png\n" + "hit100-42@2x.png\n" + "hit100-43.png\n" + "hit100-43@2x.png\n" + "hit100-44.png\n" + "hit100-44@2x.png\n" + "hit100-45.png\n" + "hit100-45@2x.png\n" + "hit100-46.png\n" + "hit100-46@2x.png\n" + "hit100-47.png\n" + "hit100-47@2x.png\n" + "hit100-48.png\n" + "hit100-48@2x.png\n" + "hit100-49.png\n" + "hit100-49@2x.png\n" + "hit100-4@2x.png\n" + "hit100-5.png\n" + "hit100-5@2x.png\n" + "hit100-6.png\n" + "hit100-6@2x.png\n" + "hit100-7.png\n" + "hit100-7@2x.png\n" + "hit100-8.png\n" + "hit100-8@2x.png\n" + "hit100-9.png\n" + "hit100-9@2x.png\n" + "hit100.png\n" + "hit100@2x.png\n" + "hit100g.png\n" + "hit100k-0.png\n" + "hit100k-0@2x.png\n" + "hit100k-1.png\n" + "hit100k-10.png\n" + "hit100k-10@2x.png\n" + "hit100k-11.png\n" + "hit100k-11@2x.png\n" + "hit100k-12.png\n" + "hit100k-12@2x.png\n" + "hit100k-13.png\n" + "hit100k-13@2x.png\n" + "hit100k-14.png\n" + "hit100k-14@2x.png\n" + "hit100k-15.png\n" + "hit100k-15@2x.png\n" + "hit100k-16.png\n" + "hit100k-16@2x.png\n" + "hit100k-17.png\n" + "hit100k-17@2x.png\n" + "hit100k-18.png\n" + "hit100k-18@2x.png\n" + "hit100k-19.png\n" + "hit100k-19@2x.png\n" + "hit100k-1@2x.png\n" + "hit100k-2.png\n" + "hit100k-20.png\n" + "hit100k-20@2x.png\n" + "hit100k-21.png\n" + "hit100k-21@2x.png\n" + "hit100k-22.png\n" + "hit100k-22@2x.png\n" + "hit100k-23.png\n" + "hit100k-23@2x.png\n" + "hit100k-24.png\n" + "hit100k-24@2x.png\n" + "hit100k-25.png\n" + "hit100k-25@2x.png\n" + "hit100k-26.png\n" + "hit100k-26@2x.png\n" + "hit100k-27.png\n" + "hit100k-27@2x.png\n" + "hit100k-28.png\n" + "hit100k-28@2x.png\n" + "hit100k-29.png\n" + "hit100k-29@2x.png\n" + "hit100k-2@2x.png\n" + "hit100k-3.png\n" + "hit100k-30.png\n" + "hit100k-30@2x.png\n" + "hit100k-31.png\n" + "hit100k-31@2x.png\n" + "hit100k-32.png\n" + "hit100k-32@2x.png\n" + "hit100k-33.png\n" + "hit100k-33@2x.png\n" + "hit100k-34.png\n" + "hit100k-34@2x.png\n" + "hit100k-35.png\n" + "hit100k-35@2x.png\n" + "hit100k-36.png\n" + "hit100k-36@2x.png\n" + "hit100k-37.png\n" + "hit100k-37@2x.png\n" + "hit100k-38.png\n" + "hit100k-38@2x.png\n" + "hit100k-39.png\n" + "hit100k-39@2x.png\n" + "hit100k-3@2x.png\n" + "hit100k-4.png\n" + "hit100k-40.png\n" + "hit100k-40@2x.png\n" + "hit100k-41.png\n" + "hit100k-41@2x.png\n" + "hit100k-42.png\n" + "hit100k-42@2x.png\n" + "hit100k-43.png\n" + "hit100k-43@2x.png\n" + "hit100k-44.png\n" + "hit100k-44@2x.png\n" + "hit100k-45.png\n" + "hit100k-45@2x.png\n" + "hit100k-46.png\n" + "hit100k-46@2x.png\n" + "hit100k-47.png\n" + "hit100k-47@2x.png\n" + "hit100k-48.png\n" + "hit100k-48@2x.png\n" + "hit100k-49.png\n" + "hit100k-49@2x.png\n" + "hit100k-4@2x.png\n" + "hit100k-5.png\n" + "hit100k-5@2x.png\n" + "hit100k-6.png\n" + "hit100k-6@2x.png\n" + "hit100k-7.png\n" + "hit100k-7@2x.png\n" + "hit100k-8.png\n" + "hit100k-8@2x.png\n" + "hit100k-9.png\n" + "hit100k-9@2x.png\n" + "hit100k.png\n" + "hit100k@2x.png\n" + "hit300-0.png\n" + "hit300-0@2x.png\n" + "hit300.png\n" + "hit300g-0.png\n" + "hit300g-0@2x.png\n" + "hit300g.png\n" + "hit300k-0.png\n" + "hit300k-0@2x.png\n" + "hit300k.png\n" + "hit50-0.png\n" + "hit50-0@2x.png\n" + "hit50-1.png\n" + "hit50-10.png\n" + "hit50-10@2x.png\n" + "hit50-11.png\n" + "hit50-11@2x.png\n" + "hit50-12.png\n" + "hit50-12@2x.png\n" + "hit50-13.png\n" + "hit50-13@2x.png\n" + "hit50-14.png\n" + "hit50-14@2x.png\n" + "hit50-15.png\n" + "hit50-15@2x.png\n" + "hit50-16.png\n" + "hit50-16@2x.png\n" + "hit50-17.png\n" + "hit50-17@2x.png\n" + "hit50-18.png\n" + "hit50-18@2x.png\n" + "hit50-19.png\n" + "hit50-19@2x.png\n" + "hit50-1@2x.png\n" + "hit50-2.png\n" + "hit50-20.png\n" + "hit50-20@2x.png\n" + "hit50-21.png\n" + "hit50-21@2x.png\n" + "hit50-22.png\n" + "hit50-22@2x.png\n" + "hit50-23.png\n" + "hit50-23@2x.png\n" + "hit50-24.png\n" + "hit50-24@2x.png\n" + "hit50-25.png\n" + "hit50-25@2x.png\n" + "hit50-26.png\n" + "hit50-26@2x.png\n" + "hit50-27.png\n" + "hit50-27@2x.png\n" + "hit50-28.png\n" + "hit50-28@2x.png\n" + "hit50-29.png\n" + "hit50-29@2x.png\n" + "hit50-2@2x.png\n" + "hit50-3.png\n" + "hit50-30.png\n" + "hit50-30@2x.png\n" + "hit50-31.png\n" + "hit50-31@2x.png\n" + "hit50-32.png\n" + "hit50-32@2x.png\n" + "hit50-33.png\n" + "hit50-33@2x.png\n" + "hit50-34.png\n" + "hit50-34@2x.png\n" + "hit50-35.png\n" + "hit50-35@2x.png\n" + "hit50-36.png\n" + "hit50-36@2x.png\n" + "hit50-37.png\n" + "hit50-37@2x.png\n" + "hit50-38.png\n" + "hit50-38@2x.png\n" + "hit50-39.png\n" + "hit50-39@2x.png\n" + "hit50-3@2x.png\n" + "hit50-4.png\n" + "hit50-40.png\n" + "hit50-40@2x.png\n" + "hit50-41.png\n" + "hit50-41@2x.png\n" + "hit50-42.png\n" + "hit50-42@2x.png\n" + "hit50-43.png\n" + "hit50-43@2x.png\n" + "hit50-44.png\n" + "hit50-44@2x.png\n" + "hit50-45.png\n" + "hit50-45@2x.png\n" + "hit50-46.png\n" + "hit50-46@2x.png\n" + "hit50-47.png\n" + "hit50-47@2x.png\n" + "hit50-48.png\n" + "hit50-48@2x.png\n" + "hit50-49.png\n" + "hit50-49@2x.png\n" + "hit50-4@2x.png\n" + "hit50-5.png\n" + "hit50-5@2x.png\n" + "hit50-6.png\n" + "hit50-6@2x.png\n" + "hit50-7.png\n" + "hit50-7@2x.png\n" + "hit50-8.png\n" + "hit50-8@2x.png\n" + "hit50-9.png\n" + "hit50-9@2x.png\n" + "hit50.png\n" + "hit50@2x.png\n" + "hitcircle.png\n" + "hitcircle@2x.png\n" + "hitcircle@2xy.png\n" + "hitcircleoverlay.png\n" + "hitcircleoverlay@2x.png\n" + "hitcircleoverlay@2xw.png\n" + "hitcircleselect.png\n" + "hitcircleselect@2x.png\n" + "inputoverlay-background.png\n" + "inputoverlay-background@2x.png\n" + "inputoverlay-key.png\n" + "inputoverlay-key@2x.png\n" + "lighting.png\n" + "lighting@2x.png\n" + "menu-back.png\n" + "menu-back@2x.png\n" + "menu-background just place.jpg\n" + "menu-background.jpg\n" + "menu-background.png\n" + "menu-background@2x.png\n" + "menu-button-background.png\n" + "menu-button-background@2x.png\n" + "menu-edit-click.wav\n" + "menu-exit-click.wav\n" + "menu-freeplay-click.wav\n" + "menu-multiplayer-click.wav\n" + "menu-options-click.wav\n" + "menu-snow.png\n" + "menu-snow@2x.png\n" + "menuback.wav\n" + "menuclick.wav\n" + "menuhit.wav\n" + "mode-fruits-med.png\n" + "mode-fruits-med@2x.png\n" + "mode-fruits-small.png\n" + "mode-fruits-small@2x.png\n" + "mode-fruits.png\n" + "mode-fruits@2x.png\n" + "mode-mania-med.png\n" + "mode-mania-med@2x.png\n" + "mode-mania-small.png\n" + "mode-mania-small@2x.png\n" + "mode-mania.png\n" + "mode-mania@2x.png\n" + "mode-osu-med.png\n" + "mode-osu-med@2x.png\n" + "mode-osu-small.png\n" + "mode-osu-small@2x.png\n" + "mode-osu.png\n" + "mode-osu@2x.png\n" + "mode-taiko-med.png\n" + "mode-taiko-med@2x.png\n" + "mode-taiko-small.png\n" + "mode-taiko-small@2x.png\n" + "mode-taiko.png\n" + "mode-taiko@2x.png\n" + "multi-skipped.png\n" + "multi-skipped@2x.png\n" + "normal-hitclap.wav\n" + "normal-hitfinish.wav\n" + "normal-hitnormal.wav\n" + "normal-hitwhistle.wav\n" + "normal-sliderslide.wav\n" + "normal-slidertick.wav\n" + "normal-sliderwhistle.wav\n" + "pause-back.png\n" + "pause-back@2x.png\n" + "pause-continue.png\n" + "pause-continue@2x.png\n" + "pause-overlay.png\n" + "pause-overlay@2x.png\n" + "pause-replay.png\n" + "pause-replay@2x.png\n" + "pause-retry.png\n" + "pause-retry@2x.png\n" + "play-skip-0.png\n" + "play-skip-0@2x.png\n" + "play-skip-1.png\n" + "play-skip-10.png\n" + "play-skip-100.png\n" + "play-skip-100@2x.png\n" + "play-skip-101.png\n" + "play-skip-101@2x.png\n" + "play-skip-102.png\n" + "play-skip-102@2x.png\n" + "play-skip-103.png\n" + "play-skip-103@2x.png\n" + "play-skip-104.png\n" + "play-skip-104@2x.png\n" + "play-skip-105.png\n" + "play-skip-105@2x.png\n" + "play-skip-106.png\n" + "play-skip-106@2x.png\n" + "play-skip-107.png\n" + "play-skip-107@2x.png\n" + "play-skip-108.png\n" + "play-skip-108@2x.png\n" + "play-skip-109.png\n" + "play-skip-109@2x.png\n" + "play-skip-10@2x.png\n" + "play-skip-11.png\n" + "play-skip-110.png\n" + "play-skip-110@2x.png\n" + "play-skip-111.png\n" + "play-skip-111@2x.png\n" + "play-skip-112.png\n" + "play-skip-112@2x.png\n" + "play-skip-113.png\n" + "play-skip-113@2x.png\n" + "play-skip-114.png\n" + "play-skip-114@2x.png\n" + "play-skip-115.png\n" + "play-skip-115@2x.png\n" + "play-skip-116.png\n" + "play-skip-116@2x.png\n" + "play-skip-117.png\n" + "play-skip-117@2x.png\n" + "play-skip-118.png\n" + "play-skip-118@2x.png\n" + "play-skip-119.png\n" + "play-skip-119@2x.png\n" + "play-skip-11@2x.png\n" + "play-skip-12.png\n" + "play-skip-120.png\n" + "play-skip-120@2x.png\n" + "play-skip-121.png\n" + "play-skip-121@2x.png\n" + "play-skip-122.png\n" + "play-skip-122@2x.png\n" + "play-skip-123.png\n" + "play-skip-123@2x.png\n" + "play-skip-124.png\n" + "play-skip-124@2x.png\n" + "play-skip-125.png\n" + "play-skip-125@2x.png\n" + "play-skip-126.png\n" + "play-skip-126@2x.png\n" + "play-skip-127.png\n" + "play-skip-127@2x.png\n" + "play-skip-128.png\n" + "play-skip-128@2x.png\n" + "play-skip-129.png\n" + "play-skip-129@2x.png\n" + "play-skip-12@2x.png\n" + "play-skip-13.png\n" + "play-skip-130.png\n" + "play-skip-130@2x.png\n" + "play-skip-131.png\n" + "play-skip-131@2x.png\n" + "play-skip-132.png\n" + "play-skip-132@2x.png\n" + "play-skip-133.png\n" + "play-skip-133@2x.png\n" + "play-skip-134.png\n" + "play-skip-134@2x.png\n" + "play-skip-135.png\n" + "play-skip-135@2x.png\n" + "play-skip-136.png\n" + "play-skip-136@2x.png\n" + "play-skip-137.png\n" + "play-skip-137@2x.png\n" + "play-skip-138.png\n" + "play-skip-138@2x.png\n" + "play-skip-139.png\n" + "play-skip-139@2x.png\n" + "play-skip-13@2x.png\n" + "play-skip-14.png\n" + "play-skip-140.png\n" + "play-skip-140@2x.png\n" + "play-skip-141.png\n" + "play-skip-141@2x.png\n" + "play-skip-142.png\n" + "play-skip-142@2x.png\n" + "play-skip-143.png\n" + "play-skip-143@2x.png\n" + "play-skip-144.png\n" + "play-skip-144@2x.png\n" + "play-skip-145.png\n" + "play-skip-145@2x.png\n" + "play-skip-146.png\n" + "play-skip-146@2x.png\n" + "play-skip-147.png\n" + "play-skip-147@2x.png\n" + "play-skip-148.png\n" + "play-skip-148@2x.png\n" + "play-skip-149.png\n" + "play-skip-149@2x.png\n" + "play-skip-14@2x.png\n" + "play-skip-15.png\n" + "play-skip-150.png\n" + "play-skip-150@2x.png\n" + "play-skip-151.png\n" + "play-skip-151@2x.png\n" + "play-skip-152.png\n" + "play-skip-152@2x.png\n" + "play-skip-153.png\n" + "play-skip-153@2x.png\n" + "play-skip-154.png\n" + "play-skip-154@2x.png\n" + "play-skip-155.png\n" + "play-skip-155@2x.png\n" + "play-skip-156.png\n" + "play-skip-156@2x.png\n" + "play-skip-157.png\n" + "play-skip-157@2x.png\n" + "play-skip-158.png\n" + "play-skip-158@2x.png\n" + "play-skip-159.png\n" + "play-skip-159@2x.png\n" + "play-skip-15@2x.png\n" + "play-skip-16.png\n" + "play-skip-160.png\n" + "play-skip-160@2x.png\n" + "play-skip-16@2x.png\n" + "play-skip-17.png\n" + "play-skip-17@2x.png\n" + "play-skip-18.png\n" + "play-skip-18@2x.png\n" + "play-skip-19.png\n" + "play-skip-19@2x.png\n" + "play-skip-1@2x.png\n" + "play-skip-2.png\n" + "play-skip-20.png\n" + "play-skip-20@2x.png\n" + "play-skip-21.png\n" + "play-skip-21@2x.png\n" + "play-skip-22.png\n" + "play-skip-22@2x.png\n" + "play-skip-23.png\n" + "play-skip-23@2x.png\n" + "play-skip-24.png\n" + "play-skip-24@2x.png\n" + "play-skip-25.png\n" + "play-skip-25@2x.png\n" + "play-skip-26.png\n" + "play-skip-26@2x.png\n" + "play-skip-27.png\n" + "play-skip-27@2x.png\n" + "play-skip-28.png\n" + "play-skip-28@2x.png\n" + "play-skip-29.png\n" + "play-skip-29@2x.png\n" + "play-skip-2@2x.png\n" + "play-skip-3.png\n" + "play-skip-30.png\n" + "play-skip-30@2x.png\n" + "play-skip-31.png\n" + "play-skip-31@2x.png\n" + "play-skip-32.png\n" + "play-skip-32@2x.png\n" + "play-skip-33.png\n" + "play-skip-33@2x.png\n" + "play-skip-34.png\n" + "play-skip-34@2x.png\n" + "play-skip-35.png\n" + "play-skip-35@2x.png\n" + "play-skip-36.png\n" + "play-skip-36@2x.png\n" + "play-skip-37.png\n" + "play-skip-37@2x.png\n" + "play-skip-38.png\n" + "play-skip-38@2x.png\n" + "play-skip-39.png\n" + "play-skip-39@2x.png\n" + "play-skip-3@2x.png\n" + "play-skip-4.png\n" + "play-skip-40.png\n" + "play-skip-40@2x.png\n" + "play-skip-41.png\n" + "play-skip-41@2x.png\n" + "play-skip-42.png\n" + "play-skip-42@2x.png\n" + "play-skip-43.png\n" + "play-skip-43@2x.png\n" + "play-skip-44.png\n" + "play-skip-44@2x.png\n" + "play-skip-45.png\n" + "play-skip-45@2x.png\n" + "play-skip-46.png\n" + "play-skip-46@2x.png\n" + "play-skip-47.png\n" + "play-skip-47@2x.png\n" + "play-skip-48.png\n" + "play-skip-48@2x.png\n" + "play-skip-49.png\n" + "play-skip-49@2x.png\n" + "play-skip-4@2x.png\n" + "play-skip-5.png\n" + "play-skip-50.png\n" + "play-skip-50@2x.png\n" + "play-skip-51.png\n" + "play-skip-51@2x.png\n" + "play-skip-52.png\n" + "play-skip-52@2x.png\n" + "play-skip-53.png\n" + "play-skip-53@2x.png\n" + "play-skip-54.png\n" + "play-skip-54@2x.png\n" + "play-skip-55.png\n" + "play-skip-55@2x.png\n" + "play-skip-56.png\n" + "play-skip-56@2x.png\n" + "play-skip-57.png\n" + "play-skip-57@2x.png\n" + "play-skip-58.png\n" + "play-skip-58@2x.png\n" + "play-skip-59.png\n" + "play-skip-59@2x.png\n" + "play-skip-5@2x.png\n" + "play-skip-6.png\n" + "play-skip-60.png\n" + "play-skip-60@2x.png\n" + "play-skip-61.png\n" + "play-skip-61@2x.png\n" + "play-skip-62.png\n" + "play-skip-62@2x.png\n" + "play-skip-63.png\n" + "play-skip-63@2x.png\n" + "play-skip-64.png\n" + "play-skip-64@2x.png\n" + "play-skip-65.png\n" + "play-skip-65@2x.png\n" + "play-skip-66.png\n" + "play-skip-66@2x.png\n" + "play-skip-67.png\n" + "play-skip-67@2x.png\n" + "play-skip-68.png\n" + "play-skip-68@2x.png\n" + "play-skip-69.png\n" + "play-skip-69@2x.png\n" + "play-skip-6@2x.png\n" + "play-skip-7.png\n" + "play-skip-70.png\n" + "play-skip-70@2x.png\n" + "play-skip-71.png\n" + "play-skip-71@2x.png\n" + "play-skip-72.png\n" + "play-skip-72@2x.png\n" + "play-skip-73.png\n" + "play-skip-73@2x.png\n" + "play-skip-74.png\n" + "play-skip-74@2x.png\n" + "play-skip-75.png\n" + "play-skip-75@2x.png\n" + "play-skip-76.png\n" + "play-skip-76@2x.png\n" + "play-skip-77.png\n" + "play-skip-77@2x.png\n" + "play-skip-78.png\n" + "play-skip-78@2x.png\n" + "play-skip-79.png\n" + "play-skip-79@2x.png\n" + "play-skip-7@2x.png\n" + "play-skip-8.png\n" + "play-skip-80.png\n" + "play-skip-80@2x.png\n" + "play-skip-81.png\n" + "play-skip-81@2x.png\n" + "play-skip-82.png\n" + "play-skip-82@2x.png\n" + "play-skip-83.png\n" + "play-skip-83@2x.png\n" + "play-skip-84.png\n" + "play-skip-84@2x.png\n" + "play-skip-85.png\n" + "play-skip-85@2x.png\n" + "play-skip-86.png\n" + "play-skip-86@2x.png\n" + "play-skip-87.png\n" + "play-skip-87@2x.png\n" + "play-skip-88.png\n" + "play-skip-88@2x.png\n" + "play-skip-89.png\n" + "play-skip-89@2x.png\n" + "play-skip-8@2x.png\n" + "play-skip-9.png\n" + "play-skip-90.png\n" + "play-skip-90@2x.png\n" + "play-skip-91.png\n" + "play-skip-91@2x.png\n" + "play-skip-92.png\n" + "play-skip-92@2x.png\n" + "play-skip-93.png\n" + "play-skip-93@2x.png\n" + "play-skip-94.png\n" + "play-skip-94@2x.png\n" + "play-skip-95.png\n" + "play-skip-95@2x.png\n" + "play-skip-96.png\n" + "play-skip-96@2x.png\n" + "play-skip-97.png\n" + "play-skip-97@2x.png\n" + "play-skip-98.png\n" + "play-skip-98@2x.png\n" + "play-skip-99.png\n" + "play-skip-99@2x.png\n" + "play-skip-9@2x.png\n" + "play-skip.png\n" + "play-skip@2x.png\n" + "play-unranked.png\n" + "play-unranked@2x.png\n" + "ranking-A-small.png\n" + "ranking-A-small@2x.png\n" + "ranking-A.png\n" + "ranking-A@2x.png\n" + "ranking-accuracy.png\n" + "ranking-accuracy@2x.png\n" + "ranking-B-small.png\n" + "ranking-B-small@2x.png\n" + "ranking-B.png\n" + "ranking-B@2x.png\n" + "ranking-C-small.png\n" + "ranking-C-small@2x.png\n" + "ranking-C.png\n" + "ranking-C@2x.png\n" + "ranking-D-small.png\n" + "ranking-D-small@2x.png\n" + "ranking-D.png\n" + "ranking-D@2x.png\n" + "ranking-graph.png\n" + "ranking-graph@2x.png\n" + "ranking-maxcombo.png\n" + "ranking-maxcombo@2x.png\n" + "ranking-panel.png\n" + "ranking-panel@2x.png\n" + "ranking-perfect.png\n" + "ranking-perfect@2x.png\n" + "ranking-S-small.png\n" + "ranking-S-small@2x.png\n" + "ranking-S.png\n" + "ranking-S@2x.png\n" + "ranking-SH-small.png\n" + "ranking-SH-small@2x.png\n" + "ranking-SH.png\n" + "ranking-SH@2x.png\n" + "ranking-title.png\n" + "ranking-title@2x.png\n" + "ranking-winner.png\n" + "ranking-X-small.png\n" + "ranking-X-small@2x.png\n" + "ranking-X.png\n" + "ranking-X@2x.png\n" + "ranking-XH-small.png\n" + "ranking-XH-small@2x.png\n" + "ranking-XH.png\n" + "ranking-XH@2x.png\n" + "ready.png\n" + "ready@2x.png\n" + "readys.wav\n" + "reversearrow.png\n" + "score-0.png\n" + "score-0@2x.png\n" + "score-1.png\n" + "score-1@2x.png\n" + "score-2.png\n" + "score-2@2x.png\n" + "score-3.png\n" + "score-3@2x.png\n" + "score-4.png\n" + "score-4@2x.png\n" + "score-5.png\n" + "score-5@2x.png\n" + "score-6.png\n" + "score-6@2x.png\n" + "score-7.png\n" + "score-7@2x.png\n" + "score-8.png\n" + "score-8@2x.png\n" + "score-9.png\n" + "score-9@2x.png\n" + "score-comma.png\n" + "score-comma@2x.png\n" + "score-dot.png\n" + "score-dot@2x.png\n" + "score-percent.png\n" + "score-percent@2x.png\n" + "score-x.png\n" + "score-x@2x.png\n" + "scorebar-bg.png\n" + "scorebar-bg@2x SIMPLESQUARES.png\n" + "scorebar-bg@2x.png\n" + "scorebar-bg@2xosu.png\n" + "scorebar-colour.png\n" + "scorebar-colour@2x SIMPLESQUARES.png\n" + "scorebar-colour@2x.png\n" + "scorebar-colour@2x1.png\n" + "scorebar-colour@2xpokeballs.png\n" + "scorebar-marker.png\n" + "scorebar-marker@2x.png\n" + "section-fail.png\n" + "section-fail@2x.png\n" + "section-pass.png\n" + "section-pass@2x.png\n" + "sectionfail.mp3\n" + "sectionpass.mp3\n" + "seeya.wav\n" + "selection-mod-autoplay.png\n" + "selection-mod-autoplay@2x.png\n" + "selection-mod-cinema.png\n" + "selection-mod-cinema@2x.png\n" + "selection-mod-doubletime.png\n" + "selection-mod-doubletime@2x.png\n" + "selection-mod-easy.png\n" + "selection-mod-easy@2x.png\n" + "selection-mod-flashlight.png\n" + "selection-mod-flashlight@2x.png\n" + "selection-mod-halftime.png\n" + "selection-mod-halftime@2x.png\n" + "selection-mod-hardrock.png\n" + "selection-mod-hardrock@2x.png\n" + "selection-mod-hidden.png\n" + "selection-mod-hidden@2x.png\n" + "selection-mod-nightcore.png\n" + "selection-mod-nightcore@2x.png\n" + "selection-mod-nofail.png\n" + "selection-mod-nofail@2x.png\n" + "selection-mod-perfect.png\n" + "selection-mod-perfect@2x.png\n" + "selection-mod-random.png\n" + "selection-mod-random@2x.png\n" + "selection-mod-relax.png\n" + "selection-mod-relax2.png\n" + "selection-mod-relax2@2x.png\n" + "selection-mod-relax@2x.png\n" + "selection-mod-scorev2.png\n" + "selection-mod-scorev2@2x.png\n" + "selection-mod-spunout.png\n" + "selection-mod-spunout@2x.png\n" + "selection-mod-suddendeath.png\n" + "selection-mod-suddendeath@2x.png\n" + "selection-mod-target.png\n" + "selection-mod-target@2x.png\n" + "selection-mode-over.png\n" + "selection-mode-over@2x.png\n" + "selection-mode.png\n" + "selection-mode@2x.png\n" + "selection-mods-over.png\n" + "selection-mods-over@2x.png\n" + "selection-mods.png\n" + "selection-mods@2x.png\n" + "selection-options-over.png\n" + "selection-options-over@2x.png\n" + "selection-options.png\n" + "selection-options@2x.png\n" + "selection-random-over.png\n" + "selection-random-over@2x.png\n" + "selection-random.png\n" + "selection-random@2x.png\n" + "selection-selectoptions-over.png\n" + "selection-selectoptions-over@2x.png\n" + "selection-selectoptions.png\n" + "selection-selectoptions@2x.png\n" + "selection-tab.png\n" + "shutter.wav\n" + "skin.ini\n" + "sliderb0.png\n" + "sliderb0@2x.png\n" + "sliderendcircle.png\n" + "sliderfollowcircle.png\n" + "sliderfollowcircle@2x.png\n" + "sliderscorepoint.png\n" + "sliderscorepoint@2x.png\n" + "soft-hitclap.wav\n" + "soft-hitfinish.wav\n" + "soft-hitnormal.wav\n" + "soft-hitwhistle.wav\n" + "soft-sliderslide.wav\n" + "soft-slidertick.wav\n" + "soft-sliderwhistle.wav\n" + "spinner-approachcircle.png\n" + "spinner-background.png\n" + "spinner-circle.png\n" + "spinner-circle@2x.png\n" + "spinner-clear.png\n" + "spinner-clear@2x.png\n" + "spinner-glow.png\n" + "spinner-glow@2x.png\n" + "spinner-metre.png\n" + "spinner-metre@2x.png\n" + "spinner-middle.png\n" + "spinner-middle2.png\n" + "spinner-middle@2x.png\n" + "spinner-osu.png\n" + "spinner-rpm.png\n" + "spinner-rpm@2x.png\n" + "spinner-spin.png\n" + "spinner-spin@2x.png\n" + "spinner-top.png\n" + "spinner-warning.png\n" + "spinnerbonus.wav\n" + "spinnerspin.wav\n" + "star.png\n" + "star2.png\n" + "star2@2x.png\n" + "star@2x.png\n" + "welcome.wav\n" + "welcome_text.png\n" + "welcome_text@2x.png\n"; final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); final Matcher matcher = pattern.matcher(string); while (matcher.find()) { System.out.println("Full match: " + matcher.group(0)); for (int i = 1; i <= matcher.groupCount(); i++) { System.out.println("Group " + i + ": " + matcher.group(i)); } } } }

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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html