Regular Expressions 101

Save & Share

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

r"
"
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 = "(房间|卫生)*(收拾|清洁|打扫|清理|整理|换枕头|换床单)(房间|卫生|一下)*(垃圾)*"; final String string = "早餐\n" + "喂\n" + "嗯,不是,嗯,我我我不,我这边是去要五啊,我听同事说是应该有有水的桶装水吗\n" + "嗯,喂,你好,我问一下这个矿泉水有没有啊\n" + "嗯,请帮我把早餐送到房间来\n" + "嗯,我要两只矿泉水\n" + "二幺幺零需要开房间门\n" + "喂,你好,那个二幺幺零刚才出来取才能石门锁上了,让人把开吧\n" + "啊,我我说早餐不是,是上来吗\n" + "喂喂\n" + "嗯,我说话房间\n" + "我要换个房间\n" + "帮我送两瓶矿泉水过来\n" + "哎,你好,我这边需要早餐\n" + "喂,你好\n" + "嗯,我这边需要早餐\n" + "那是你们有起伏这个东西的\n" + "是这样,那个呃,我明天早上来早餐,你帮我之前说是九点钟送你帮我打了十点可以吗\n" + "我要订早餐\n" + "那个幺七零八的外卖送了吗\n" + "发胶\n" + "嗯,你们这有发胶吗\n" + "好久\n" + "喂,嗯,我哪个剃须刀过来\n" + "打电话什么是\n" + "哎,一个\n" + "那个送点的,送的那个牙刷牙膏上来楼\n" + "喂?喂\n" + "嗯,我我想那个幺五零九,我想送两份早餐\n" + "嗯,帮我点个餐\n" + "请帮我送两瓶矿泉水\n" + "啊点餐\n" + "也抽纸已经用完了送两包抽纸\n" + "你好,请给四要二房送,送两包抽纸两瓶水,谢谢\n" + "用完了\n" + "那个最迟什么时间退房啊\n" + "啊,你好,那个房间里边那个洗手池的那个水很小\n" + "帮我送件成人,寓意\n" + "成人浴衣,就是那个睡衣\n" + "我说苹果充电线,没有啦\n" + "我问一下啊,首先的我想要一个苹果的充电器\n" + "苹果的\n" + "那个充电线过来就可以了啊\n" + "一个枕头\n" + "一个水杯\n" + "全名侍者\n" + "菊花\n" + "针线包一个\n" + "哎,你好,我问一下这边是几点退房\n" + "我和钱财\n" + "啊,你们七点五这没有纸巾了,能复原吗\n" + "房间的网络是不是有问题\n" + "房间的网络是不是有问题啊\n" + "嗯,你好,那个苹果充电线可以快点拿过来吗,谢谢\n" + "香皂\n" + "你好,我想订下明天早餐\n" + "嗯\n" + "嗯,早餐可提供吗?早餐\n" + "嗯,暂时不需要,谢谢\n" + "我想问一下那个空\n" + "唉,那个早餐不是送上来吗\n" + "WiFi\n" + "嗯,我需要餐巾纸\n" + "我要变化早餐\n" + "电话线早餐\n" + "唉,你好,唉,要八幺零帮我送两瓶水,好吧\n" + "能帮我送两瓶矿泉水来吗\n" + "你好,请问你那边有尺子吗\n" + "啊,你是人工还是智能语音\n" + "嗯,你好,我想点个餐点一个台湾卤肉泛套餐\n" + "退房\n" + "酒店提供免费矿泉水吗\n" + "早餐吗\n" + "我需要一个手提袋,还有一双筷子\n" + "帮我拿那个两条苹果的数据线过来\n" + "没有快点\n" + "两瓶\n" + "嗯,我想问一下,现在可是没有瓶装水供应的是吧\n" + "帮我\n" + "要一把咖啡\n" + "剃须刀\n" + "嗯,帮我幺八零八拿一个\n" + "唉,你那个帮我拿两个那个浴袍上来\n" + "酒店提供咖啡吗\n" + "唉喂\n" + "不是说在从为啥我什么这个我只用完了都不再提供一点\n" + "我你,我请问下能服务那个幺七零六房间提供一些纸巾\n" + "嗯,WiFi怎么连接啊\n" + "什么\n" + "我想问一下是不会弄错,房间了,我订的是豪华大床双床房,这反这么小不限啊\n" + "卫生在\n" + "卫生袋\n" + "我要一个袋子\n" + "给送点餐巾纸,垃圾袋\n" + "送点,餐巾纸过来\n" + "呃,空调不制冷\n" + "哎,我这要要早餐,你快一点\n" + "我也没有,嗯\n" + "我要早餐幺五幺五零八房间\n" + "我这个早上怎么还没送过来啊\n" + "送两瓶水\n" + "好O\n" + "告诉我WiFi密码\n" + "那个我想问一下,我这插座没电\n" + "嗯,再送一个充电器\n" + "我一条浴巾\n" + "苹果充电线\n" + "送两双拖鞋\n" + "充电器吗\n" + "呃,你送一根华为的,送一根安卓的吧,嗯\n" + "安卓的\n" + "有的送两瓶水上的\n" + "啊,你好,那个二零零二帮我送两支矿泉水上来好吗?二零零二\n" + "我们唉我们打前台是多少\n" + "不是那个房七零五没有纸巾了,能送的纸巾吗\n" + "卫生纸\n" + "啊,送点纸成\n" + "直接\n" + "喂wife密码\n" + "送餐\n" + "平台\n" + "帮我拿个充电器上来苹果的\n" + "你就让他送就行\n" + "我房间需要饮用水\n" + "我要幺零七房间没有水\n" + "我要我要早餐,你这不是钱的吗\n" + "我要找她\n" + "额,我要早餐\n" + "送两瓶,瓶装水\n" + "请问一下WiFi密码\n" + "垃圾袋\n" + "你电话\n" + "嗯,验证吗?它是wife名字什么\n" + "这个wife多少\n" + "你好,呃房间的wifi连不上\n" + "你,我想改一下明天早上送早餐的时间\n" + "改一下,明天早上送餐的时间\n" + "嗯,送早餐\n" + "你好,我想问一下这个电视怎么能调试网络电视了\n" + "你要帮我送个红酒红酒开瓶器\n" + "嗯,帮我送一件年历比较墙的胶布到二三幺二\n" + "帮我送一点年历比较墙的胶布到二三幺二\n" + "有没动静啊\n" + "请用话筒说出你的啥呀\n" + "我要两个决明子枕\n" + "薰衣草枕\n" + "这两个薰衣草枕\n" + "安卓充电线\n" + "帮我拿条充电线上来在二零幺八\n" + "无线密码\n" + "额,我需一瓶水\n" + "七点\n" + "我想订下明天早餐\n" + "喂,我们是早餐送过来了,没有\n" + "酒店有矿泉水吗\n" + "嗯,你好,我那个餐室幺五幺七房后的,然后里面有两根冰激凌很久没有送上来,我怕掉了\n" + "对\n" + "开不房间\n" + "打扫房间\n" + "哎,你好,我记得不是说早餐送到房间来么\n" + "嗯,我是不是外卖到了,是你帮我送上来\n" + "我都外卖是不是已经在前台那里了,你是不是帮我送上来\n" + "两三个吧\n" + "八零五需要垃圾袋\n" + "那个八零五换一下垃圾箱,好吗\n" + "额,需要\n" + "洗衣机\n" + "现在\n" + "早餐在几楼\n" + "早餐在哪里吃\n" + "尽快送两瓶工装瓶装水\n" + "要两瓶水瓶装水\n" + "唉,请问是大厅吗\n" + "给我送两瓶水\n" + "一酒店的地址\n" + "请问咱们这个酒店的通讯地址是什么\n" + "啊,就是你们下面有有那个安卓的充电器啊\n" + "额,你这里无线那个有一个吗,就是不用密码的这个一个无线啊\n" + "我借一下餐盘\n" + "无线网\n" + "嗯,地板要西城\n" + "就是把床单被套整套换了最后在在要西城地板机场\n" + "我转前台,我要换床单,二四幺六\n" + "嗯,环保袋\n" + "我要刮胡刀\n" + "拿多一个袋子\n" + "袋子\n" + "不要了\n" + "两包制止没\n" + "咖啡\n" + "我要两杯咖啡,我要两包咖啡两包自己漠河一包\n" + "还要两包咖啡糖\n" + "哎,帮忙叫一下那个打扫房间\n" + "两个\n" + "唉,这哪个房间啊\n" + "送牙刷\n" + "帮我拿两件浴袍\n" + "快一点\n" + "给我拿个地区拿过来啊,那么久还没过来\n" + "我要两个荞麦枕和一个指甲钱\n" + "指甲钳\n" + "唉喂,你好,帮我送个早餐过来\n" + "你好,我需要洗那个牙刷\n" + "牙刷\n" + "你好,我想订一下,明天的早餐\n" + "转接到按楼层厅\n" + "哎,你好,那个我刚到这个房间是七二零,我看这个靠路边有点吵,能不能我也没进去,就是没没动的房间,我想一个那边西边的房间\n" + "我想换房间\n" + "我要换房间\n" + "帮我拿两个牙具和颐和一个梳子\n" + "嗯,帮我送一下早餐\n" + "嗯,可以了啊,就是苹果的手机充电线,充电出现\n" + "请帮忙送一个苹果手机的充电器\n" + "喂喂,请问WiFi密码是多少\n" + "餐巾纸,用完了\n" + "嗯,那个帮忙早餐送一下\n" + "喂,你好,这边最晚几点退房\n" + "不要送两瓶水,今天两瓶水,没送\n" + "再送两瓶\n" + "是的\n" + "送四瓶水\n" + "帮我取个刮胡刀,谢谢\n" + "你\n" + "嗯,这哪个酒店啊\n" + "那个我们要八零幺的那个早餐能不能早点送过来啊\n" + "你好,我有那个外卖在前台,你帮我送上来\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