CyrilEx 

Regex Tester

 
Regular expression to test
Flags
String to test Generate a string from RegEx (Beta)


Substitution string


CyrilEx is an online regex debugger, it allows you to test regular expression in PHP (PCRE), Python, Ruby, JavaScript, Java and MySQL. It helps you to test and debug regex online, you can visualize the matches when matching a string against a regex.

A regex visualizer allows to visualize your regex, it helps to understand it. This feature is useful for large regexes.

Cyrilex also allows you to generate a string example from a RegEx. This gives a pretty quick idea of a regex.

You can consult the regex Quick Start or see the full user guide to help you to use this regular expression tester.

User guide

  • Step 0: Choose the regex engine: JavaScript, Ruby, Java or PCRE (PHP, Python).
  • Step 1: Copy and paste or directly type your regular expression to test in the "Regular expression to test" field.
  • Step 2: Select the flags you want in "Flags" section.
  • Step 3: Copy and paste or directly type your test string in the "test string" field.
  • As soon as you make a modification (regular expression, flags or test string):
    • Step 4: An explanation is generated about of your regex. It uses regulex, it is a JavaScript Regular Expression Parser & Visualizer (Written in pure JavaScript).
    • Step 5: A message indicates the number of correspondence
    • Your regex is highlighted according to the syntax. It is a beta version, it can be wrong.

    regex tester user guide

  • You can also replace regular expression matches in text with a replacement string.

    Step 6: Copy and paste or directly type your substitute string in the "Substitution" field.

    Step 7: Substitutions are automatically performed on your test string.

    regex tester user guide

  • You can save your regex in order to share it. You can protect your share with a password, so only you can change it. See "Save and Share" section:

    share regex tester

Generate a string from RegEx (Beta):
Clicks on "Generate a string from RegEx (Beta)" in order to generate a string that matches with the regex.

Substitutions are not managed.

News: You can now test MySQL regex, select the "MySQL 8" engine.



About regular expression

A regular expression is a sequence of characters that define a search pattern. This pattern is used by string searching algorithms for find or replace text. It can be useful to validate an EMAIL address or an IP address.

Regex support is part of the standard library of many programming languages. Each programming language has its own regex engine, regular expression implementations vary slightly between languages.

Regex humor (Jamie Zawinski):
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.


Regex Online

Cyrilex is an online regex checker, it allows to easily test and debug regex. This avoids wasting time writing the few lines of code needed to do the tests.

A regex visualizer and a regex generator help you to understand and debug your regexes.

This tool also allows you to share your regular expressions, this can be useful when you want to explain one of your regex problems (or its resolution) on a forum.

Regex Generator

Cyrilex also allows generating string from your Regex. By generating a string, this can help understand the Regex. This is particularly useful for fairly long regex.

This is also useful in the opposite direction. You can validate that your regex is correct by validating that the thong generated corresponds to the expected.

This tool does not manage all the features of the Regex.


The unavoidables

Some regex that can be useful (without warranty).

Email address

The last RFC is complex, there is no reliable solution, this regex should work more than 99% of the time (You must turn off case sensitivity).

^((?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]))$

Alphanumeric

The regex below allows to validate alphanumeric string. Be careful, \w authorizes the underscore character.

^[a-zA-Z0-9]+$

MD5

The regex below allows to validate MD5 string.

^[a-f0-9]{32}$

IP V4

The regex below allows to validate IP v4.

^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$


Save regular expression
Your regex has been permanently saved and you (or anybody) can access with this link:
Password
Choice a password to modify/delete this regex later Enter password to modify this regex. Enter password to delete this regex. Enter the new password for the fork.
You can report a bug or give feedback by adding a comment (below) or by clicking "Contact me" link (at the top right hand corner of the page).

Comments




Dietmar Schindler-2020-03-10 14:23
If the expression isn't understood by the engine, the error message is visible too shortly.
Also it would be important to know which Python version is used for the Python RegEx engine
(it seems to not understand "(?i:…)").
Example: \b(([A-Z])([A-Z])?([A-Z])?([A-Z])?) (?:\w+ ){,1}\(?from .*?(?P<full>\2.*?(?i:\3?.*?\4?.*?\5?).*?)\b


Cyril (admin)-2020-03-21 15:23
Yes, I will add it!


cyril (admin)-2020-07-02 19:53
I added it!


ikenfin-2020-06-24 10:49
Hi!

Found a little bug with substitution text parsing.
For example, using ruby named groups - https://extendsclass.com/regex/ffedfad (password: 123)
While editing some unicode symbols in substitution field seems broke parser (play with ¢ symbol)


Cyril (admin)-2020-06-24 16:45
Hi, thank you for reporting this bug!


Cyril (admin)-2020-06-27 20:56
It is fixed :)


nhoquim-2021-01-19 13:15
Dear,
I have try and a condition group in the REGEX as below:
(S120)(?:(T)|([V|W|Z]))((?(2)[1|3]|[0|1|2|3]))
The last group can be values 1 or 3 in case of group 2 is select. In case of group 3 is select, the last digit will be 0,1,2 or 3.
It works in Python but not in your system.
Could you check?


Cyril-2021-01-19 14:40
Hello,
I am trying with the string "S120V2" and there is 1 match.
Can you share your test ("Save & Share") ?


David Spector-2021-05-17 16:24
This tool only produces a pretty equivalent to the RE itself. It fails to show the PHP match array that is generated. This is important when using the "groups" feature of REs.


Sezer-2021-08-26 00:57
Very cool regex tester! Congrats...


VJ-2021-10-14 17:56
Hi,
I download the version from gitlab, tried the regex:
^[a-f0-9]{32}$

But it fails with the error:

result is not defined

Seems the "$" is not being accepted. Can you please have a look.
The online version works fine.


John-2021-12-13 21:19
Doesnt recognize # literal character - issues an error "prefix not defined"


Cyril-2024-03-14 13:31
It's finally corrected...!


Rishabh-2022-01-07 12:05
Hello creater,
This tool is very useful along with other functionalies provided.
I move to regex when other methods fail.

Thanks.
as they say, you try to solve a problem using regex , now you have two problems.