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

/
/
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 = "\\.java:\\d+\\)([\\r\\n]+)\\s\\S+"; final String string = "Total threads: 434 on 2018-04-29T17-00-03+0800\n" + " \n" + " Name CPU Time (ms) User Time (ms) Id State\n" + " IPC Parameter Sending Thread #868 0 0 17782 TIMED_WAITING\n" + " waiting on java.util.concurrent.SynchronousQueue$TransferStack@4d974d1c at sun.misc.Unsafe.park(Native Method)\n" + " at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)\n" + " at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:460)\n" + " at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)\n" + " at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941)\n" + " at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1066)\n" + " at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)\n" + " at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n" + " at java.lang.Thread.run(Thread.java:745)\n" + " IPC Client (2006835220) connection to abcd.com/10.21.216.71:8020 from hdfs 0 0 17781 TIMED_WAITING\n" + " waiting on org.apache.hadoop.ipc.Client$Connection@5be22c7a at java.lang.Object.wait(Native Method)\n" + " at org.apache.hadoop.ipc.Client$Connection.waitForWork(Client.java:931)\n" + " at org.apache.hadoop.ipc.Client$Connection.run(Client.java:976)\n" + " 1306724746@qtp-695248316-10273 29 10 17780 TIMED_WAITING\n" + " waiting on org.mortbay.thread.QueuedThreadPool$PoolThread@4de3098a at java.lang.Object.wait(Native Method)\n" + " at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:626)\n" + " 2125946201@qtp-695248316-10271 40 20 17776 TIMED_WAITING\n" + " waiting on org.mortbay.thread.QueuedThreadPool$PoolThread@7eb75d59 at java.lang.Object.wait(Native Method)\n" + " at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:626)\n" + " 1805988475@qtp-695248316-10269 133 70 17772 TIMED_WAITING\n" + " waiting on org.mortbay.thread.QueuedThreadPool$PoolThread@6ba5327b at java.lang.Object.wait(Native Method)\n" + " at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:626)\n" + " 402769840@qtp-695248316-10266 161 90 17766 TIMED_WAITING\n" + " waiting on org.mortbay.thread.QueuedThreadPool$PoolThread@1801c7b0 at java.lang.Object.wait(Native Method)\n" + " at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:626)\n" + " FastExecutor-3-60 1 0 17747 WAITING\n" + " waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@476f266c at sun.misc.Unsafe.park(Native Method)\n" + " at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\n" + " at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\n" + " at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\n" + " at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)\n" + " at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)\n" + " at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n" + " at com.xyz.shadow.io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:145)\n" + " at java.lang.Thread.run(Thread.java:745)"; 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