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

# coding=utf8 # the above tag defines encoding for this document and is for Python 2.x compatibility import re regex = r"(\{\s*(\"uid\"[\S ]+\s*)(\"commandName\": \"(?!OpenSpreadsheet).*\"[\S ]*\s*)(\"packageName\": \"Excel_MS\"[\S ]*\s*)(\"disabled\"[\S ]*\s*)(\"attributes\": \[(?:[\s\S])*?\])\s*\})" test_str = ("{(\\\"packageName\\\": \\\".+\\\",\\s+))\n" " \"triggers\": [],\n" " \"nodes\": [\n" " {\n" " \"uid\": \"c381755e-45af-4521-a5da-ccb611b714de\",\n" " \"commandName\": \"try\",\n" " \"packageName\": \"ErrorHandler\",\n" " \"disabled\": false,\n" " \"children\": [\n" " {\n" " \"uid\": \"112fb642-d36b-40f0-98dd-ca3ffbdf245c\",\n" " \"commandName\": \"OpenSpreadsheet\",\n" " \"packageName\": \"Excel_MS\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"session\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"Email Config\"\n" " }\n" " },\n" " {\n" " \"name\": \"filePath\",\n" " \"value\": {\n" " \"type\": \"FILE\",\n" " \"expression\": \"file://$sEmailConfig_Path$/Email_Config.xlsx\"\n" " }\n" " },\n" " {\n" " \"name\": \"isSpecificSheet\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": false\n" " }\n" " },\n" " {\n" " \"name\": \"fileAccessMode\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"EDIT\"\n" " }\n" " },\n" " {\n" " \"name\": \"isSecure\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": false\n" " }\n" " },\n" " {\n" " \"name\": \"containsHeader\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": true\n" " }\n" " },\n" " {\n" " \"name\": \"loadAddIns\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": false\n" " }\n" " }\n" " ],\n" " \"returnTo\": {\n" " \"type\": \"SESSION\",\n" " \"sessionName\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"Email Config\"\n" " },\n" " \"sessionTarget\": \"LOCAL\"\n" " }\n" " },\n" " {\n" " \"uid\": \"5dde9342-f376-40a6-b989-4b2e1ca27d49\",\n" " \"commandName\": \"step\",\n" " \"packageName\": \"Step\",\n" " \"disabled\": false,\n" " \"children\": [\n" " {\n" " \"uid\": \"0fc45d7d-1e41-449e-be34-39d58c160196\",\n" " \"commandName\": \"if\",\n" " \"packageName\": \"If\",\n" " \"disabled\": false,\n" " \"children\": [\n" " {\n" " \"uid\": \"ce33cad3-9f43-4ee4-8840-0746097df93a\",\n" " \"commandName\": \"SwitchToSheet\",\n" " \"packageName\": \"Excel_MS\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"session\",\n" " \"value\": {\n" " \"type\": \"SESSION\",\n" " \"sessionName\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"Email Config\"\n" " }\n" " }\n" " },\n" " {\n" " \"name\": \"sheetOption\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"BYNAME\"\n" " }\n" " },\n" " {\n" " \"name\": \"sheetName\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"Complete\"\n" " }\n" " }\n" " ]\n" " }\n" " ],\n" " \"branches\": [],\n" " \"attributes\": [\n" " {\n" " \"name\": \"condition\",\n" " \"attributes\": [\n" " {\n" " \"name\": \"variable\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"$sTag$\"\n" " }\n" " },\n" " {\n" " \"name\": \"operator\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"EQ\"\n" " }\n" " },\n" " {\n" " \"name\": \"value\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"Complete\"\n" " }\n" " },\n" " {\n" " \"name\": \"matchCase\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": true\n" " }\n" " },\n" " {\n" " \"name\": \"isIgnoreCarriage\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": false\n" " }\n" " }\n" " ],\n" " \"value\": {\n" " \"type\": \"CONDITIONAL\",\n" " \"conditionalName\": \"stringVariable\",\n" " \"packageName\": \"String\"\n" " }\n" " }\n" " ]\n" " },\n" " {\n" " \"uid\": \"03a75bd4-d238-4d5f-990b-e5bc78c36350\",\n" " \"commandName\": \"if\",\n" " \"packageName\": \"If\",\n" " \"disabled\": false,\n" " \"children\": [\n" " {\n" " \"uid\": \"992db39c-a0ec-4c5b-bdbe-1eda2082bc5b\",\n" " \"commandName\": \"SwitchToSheet\",\n" " \"packageName\": \"Excel_MS\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"session\",\n" " \"value\": {\n" " \"type\": \"SESSION\",\n" " \"sessionName\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"Email Config\"\n" " }\n" " }\n" " },\n" " {\n" " \"name\": \"sheetOption\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"BYNAME\"\n" " }\n" " },\n" " {\n" " \"name\": \"sheetName\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"Error\"\n" " }\n" " }\n" " ]\n" " }\n" " ],\n" " \"branches\": [],\n" " \"attributes\": [\n" " {\n" " \"name\": \"condition\",\n" " \"attributes\": [\n" " {\n" " \"name\": \"variable\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"$sTag$\"\n" " }\n" " },\n" " {\n" " \"name\": \"operator\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"EQ\"\n" " }\n" " },\n" " {\n" " \"name\": \"value\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"Error\"\n" " }\n" " },\n" " {\n" " \"name\": \"matchCase\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": true\n" " }\n" " },\n" " {\n" " \"name\": \"isIgnoreCarriage\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": false\n" " }\n" " }\n" " ],\n" " \"value\": {\n" " \"type\": \"CONDITIONAL\",\n" " \"conditionalName\": \"stringVariable\",\n" " \"packageName\": \"String\"\n" " }\n" " }\n" " ]\n" " }\n" " ],\n" " \"attributes\": [\n" " {\n" " \"name\": \"title\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"1:判斷需取得完成或失敗收件人\"\n" " }\n" " }\n" " ]\n" " },\n" " {\n" " \"uid\": \"765cc618-60f6-4c99-aa09-41587770e548\",\n" " \"commandName\": \"step\",\n" " \"packageName\": \"Step\",\n" " \"disabled\": false,\n" " \"children\": [\n" " {\n" " \"uid\": \"64a1400c-802f-42e0-8919-b34a555e2408\",\n" " \"commandName\": \"GetSingleCell\",\n" " \"packageName\": \"Excel_MS\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"session\",\n" " \"value\": {\n" " \"type\": \"SESSION\",\n" " \"sessionName\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"Email Config\"\n" " }\n" " }\n" " },\n" " {\n" " \"name\": \"activeCell\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"false\"\n" " }\n" " },\n" " {\n" " \"name\": \"cell\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"C2\"\n" " }\n" " },\n" " {\n" " \"name\": \"readOption\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"READ_CELL_VALUE\"\n" " }\n" " },\n" " {\n" " \"name\": \"readOption_readCellValue_Help\",\n" " \"value\": {\n" " \"type\": \"STRING\"\n" " }\n" " }\n" " ],\n" " \"returnTo\": {\n" " \"type\": \"VARIABLE\",\n" " \"variableName\": \"sPrefix\"\n" " }\n" " },\n" " {\n" " \"uid\": \"a7f93eed-6554-42bb-a5a1-397064778e2c\",\n" " \"commandName\": \"loop.commands.start\",\n" " \"packageName\": \"Loop\",\n" " \"disabled\": false,\n" " \"children\": [\n" " {\n" " \"uid\": \"41052b43-261a-4c28-ba8a-5c65244a475c\",\n" " \"commandName\": \"if\",\n" " \"packageName\": \"If\",\n" " \"disabled\": false,\n" " \"children\": [\n" " {\n" " \"uid\": \"f429f0ae-e41e-40c5-a2ac-ddf57f84c686\",\n" " \"commandName\": \"assign\",\n" " \"packageName\": \"String\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"sourceString\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"$sRecipient$;$rGet_Email_Info[0]$\"\n" " }\n" " }\n" " ],\n" " \"returnTo\": {\n" " \"type\": \"VARIABLE\",\n" " \"variableName\": \"sRecipient\"\n" " }\n" " }\n" " ],\n" " \"branches\": [],\n" " \"attributes\": [\n" " {\n" " \"name\": \"condition\",\n" " \"attributes\": [\n" " {\n" " \"name\": \"variable\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"$rGet_Email_Info[0]$\"\n" " }\n" " },\n" " {\n" " \"name\": \"operator\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"NEQ\"\n" " }\n" " },\n" " {\n" " \"name\": \"value\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"matchCase\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": true\n" " }\n" " },\n" " {\n" " \"name\": \"isIgnoreCarriage\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": false\n" " }\n" " }\n" " ],\n" " \"value\": {\n" " \"type\": \"CONDITIONAL\",\n" " \"conditionalName\": \"stringVariable\",\n" " \"packageName\": \"String\"\n" " }\n" " }\n" " ]\n" " }\n" " ],\n" " \"attributes\": [\n" " {\n" " \"name\": \"loopType\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"ITERATOR\"\n" " }\n" " },\n" " {\n" " \"name\": \"iterator\",\n" " \"returnTo\": {\n" " \"type\": \"VARIABLE\",\n" " \"variableName\": \"rGet_Email_Info\"\n" " },\n" " \"attributes\": [\n" " {\n" " \"name\": \"session\",\n" " \"value\": {\n" " \"type\": \"SESSION\",\n" " \"sessionName\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"Email Config\"\n" " }\n" " }\n" " },\n" " {\n" " \"name\": \"loopSelection\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"ALL_ROWS\"\n" " }\n" " },\n" " {\n" " \"name\": \"readOption\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"READ_CELL_VALUE\"\n" " }\n" " },\n" " {\n" " \"name\": \"readOption_readCellValue_Help\",\n" " \"value\": {\n" " \"type\": \"STRING\"\n" " }\n" " }\n" " ],\n" " \"value\": {\n" " \"type\": \"ITERATOR\",\n" " \"iteratorName\": \"loop.iterators.excel\",\n" " \"packageName\": \"Excel_MS\"\n" " }\n" " }\n" " ]\n" " },\n" " {\n" " \"uid\": \"4c7e0009-3e80-420c-bf95-87bd08d53d41\",\n" " \"commandName\": \"loop.commands.start\",\n" " \"packageName\": \"Loop\",\n" " \"disabled\": false,\n" " \"children\": [\n" " {\n" " \"uid\": \"cdc0133d-96ea-426c-a1ec-45c944727e74\",\n" " \"commandName\": \"if\",\n" " \"packageName\": \"If\",\n" " \"disabled\": false,\n" " \"children\": [\n" " {\n" " \"uid\": \"654cda9c-a1be-41ad-81b2-271025dcd87f\",\n" " \"commandName\": \"assign\",\n" " \"packageName\": \"String\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"sourceString\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"$sCc_Group$;$rGet_Email_Info[1]$\"\n" " }\n" " }\n" " ],\n" " \"returnTo\": {\n" " \"type\": \"VARIABLE\",\n" " \"variableName\": \"sCc_Group\"\n" " }\n" " }\n" " ],\n" " \"branches\": [],\n" " \"attributes\": [\n" " {\n" " \"name\": \"condition\",\n" " \"attributes\": [\n" " {\n" " \"name\": \"variable\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"$rGet_Email_Info[1]$\"\n" " }\n" " },\n" " {\n" " \"name\": \"operator\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"NEQ\"\n" " }\n" " },\n" " {\n" " \"name\": \"value\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"matchCase\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": true\n" " }\n" " },\n" " {\n" " \"name\": \"isIgnoreCarriage\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": false\n" " }\n" " }\n" " ],\n" " \"value\": {\n" " \"type\": \"CONDITIONAL\",\n" " \"conditionalName\": \"stringVariable\",\n" " \"packageName\": \"String\"\n" " }\n" " }\n" " ]\n" " }\n" " ],\n" " \"attributes\": [\n" " {\n" " \"name\": \"loopType\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"ITERATOR\"\n" " }\n" " },\n" " {\n" " \"name\": \"iterator\",\n" " \"returnTo\": {\n" " \"type\": \"VARIABLE\",\n" " \"variableName\": \"rGet_Email_Info\"\n" " },\n" " \"attributes\": [\n" " {\n" " \"name\": \"session\",\n" " \"value\": {\n" " \"type\": \"SESSION\",\n" " \"sessionName\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"Email Config\"\n" " }\n" " }\n" " },\n" " {\n" " \"name\": \"loopSelection\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"ALL_ROWS\"\n" " }\n" " },\n" " {\n" " \"name\": \"readOption\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"READ_CELL_VALUE\"\n" " }\n" " },\n" " {\n" " \"name\": \"readOption_readCellValue_Help\",\n" " \"value\": {\n" " \"type\": \"STRING\"\n" " }\n" " }\n" " ],\n" " \"value\": {\n" " \"type\": \"ITERATOR\",\n" " \"iteratorName\": \"loop.iterators.excel\",\n" " \"packageName\": \"Excel_MS\"\n" " }\n" " }\n" " ]\n" " },\n" " {\n" " \"uid\": \"640a0a89-0252-4dbb-9a92-cb667d584a12\",\n" " \"commandName\": \"beforeAfter\",\n" " \"packageName\": \"String\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"sourceString\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"$sRecipient$\"\n" " }\n" " },\n" " {\n" " \"name\": \"getCharacters\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"BEFORE\"\n" " }\n" " },\n" " {\n" " \"name\": \"beforeString\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \";\"\n" " }\n" " },\n" " {\n" " \"name\": \"beforeOccurrence\",\n" " \"value\": {\n" " \"type\": \"NUMBER\",\n" " \"number\": \"1\"\n" " }\n" " },\n" " {\n" " \"name\": \"ifNoMatchFound\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"EMPTY\"\n" " }\n" " },\n" " {\n" " \"name\": \"noOfCharsToGet\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"ALL\"\n" " }\n" " },\n" " {\n" " \"name\": \"trimSpaces\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": true\n" " }\n" " },\n" " {\n" " \"name\": \"removeEnter\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": true\n" " }\n" " }\n" " ],\n" " \"returnTo\": {\n" " \"type\": \"VARIABLE\",\n" " \"variableName\": \"sRecipient\"\n" " }\n" " },\n" " {\n" " \"uid\": \"dc6fc20c-793b-421b-86ba-69355b8fee9b\",\n" " \"commandName\": \"beforeAfter\",\n" " \"packageName\": \"String\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"sourceString\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"$sCc_Group$\"\n" " }\n" " },\n" " {\n" " \"name\": \"getCharacters\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"BEFORE\"\n" " }\n" " },\n" " {\n" " \"name\": \"beforeString\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \";\"\n" " }\n" " },\n" " {\n" " \"name\": \"beforeOccurrence\",\n" " \"value\": {\n" " \"type\": \"NUMBER\",\n" " \"number\": \"1\"\n" " }\n" " },\n" " {\n" " \"name\": \"ifNoMatchFound\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"EMPTY\"\n" " }\n" " },\n" " {\n" " \"name\": \"noOfCharsToGet\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"ALL\"\n" " }\n" " },\n" " {\n" " \"name\": \"trimSpaces\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": true\n" " }\n" " },\n" " {\n" " \"name\": \"removeEnter\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": true\n" " }\n" " }\n" " ],\n" " \"returnTo\": {\n" " \"type\": \"VARIABLE\",\n" " \"variableName\": \"sCc_Group\"\n" " }\n" " },\n" " {\n" " \"uid\": \"f57be4d7-2fd2-4fc7-9319-2a5d7d9a36f7\",\n" " \"commandName\": \"sendMail\",\n" " \"packageName\": \"Email\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"toAddress\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"$sRecipient$\"\n" " }\n" " },\n" " {\n" " \"name\": \"cc\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"$sCc_Group$\"\n" " }\n" " },\n" " {\n" " \"name\": \"bcc\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"subject\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"$sPrefix$ - $sSubject$\"\n" " }\n" " },\n" " {\n" " \"name\": \"attachmentsFilePath\",\n" " \"value\": {\n" " \"type\": \"FILE\",\n" " \"expression\": \"file://$sAttechment$\"\n" " }\n" " },\n" " {\n" " \"name\": \"ensureAttachmentsExist\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": false\n" " }\n" " },\n" " {\n" " \"name\": \"bodyFormat\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"HTML\"\n" " }\n" " },\n" " {\n" " \"name\": \"message\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"$sEmail_Message$\"\n" " }\n" " },\n" " {\n" " \"name\": \"goGreen\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": false\n" " }\n" " },\n" " {\n" " \"name\": \"serverType\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"OUTLOOK\"\n" " }\n" " }\n" " ]\n" " },\n" " {\n" " \"uid\": \"569bc7ed-3eaf-4ad3-94ab-36b401a87687\",\n" " \"commandName\": \"CloseSpreadsheet\",\n" " \"packageName\": \"Excel_MS\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"session\",\n" " \"value\": {\n" " \"type\": \"SESSION\",\n" " \"sessionName\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"Email Config\"\n" " }\n" " }\n" " },\n" " {\n" " \"name\": \"isSave\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": true\n" " }\n" " }\n" " ]\n" " },\n" " {\n" " \"uid\": \"d7bb895d-2bef-4a1a-90b0-3040883e2e14\",\n" " \"commandName\": \"delay\",\n" " \"packageName\": \"Delay\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"delayType\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"REGULAR\"\n" " }\n" " },\n" " {\n" " \"name\": \"delayTime\",\n" " \"value\": {\n" " \"type\": \"NUMBER\",\n" " \"number\": \"60\"\n" " }\n" " },\n" " {\n" " \"name\": \"timeUnit\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"SECONDS\"\n" " }\n" " }\n" " ]\n" " }\n" " ],\n" " \"attributes\": [\n" " {\n" " \"name\": \"title\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"2:取得收件人並寄出信件\"\n" " }\n" " }\n" " ]\n" " }\n" " ],\n" " \"branches\": [\n" " {\n" " \"uid\": \"c95b4ff0-05e4-4872-810c-77de9ee91b03\",\n" " \"commandName\": \"catch\",\n" " \"packageName\": \"ErrorHandler\",\n" " \"disabled\": false,\n" " \"children\": [\n" " {\n" " \"uid\": \"3a246d3a-c827-429d-a7af-f9f725858d6b\",\n" " \"commandName\": \"toString\",\n" " \"packageName\": \"Datetime\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"source\",\n" " \"value\": {\n" " \"type\": \"VARIABLE\",\n" " \"packageName\": \"System\",\n" " \"variableName\": \"Date\"\n" " }\n" " },\n" " {\n" " \"name\": \"selectPattern\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"CUSTOM\"\n" " }\n" " },\n" " {\n" " \"name\": \"patternInput\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"yyyyMMdd_HHmmSS\"\n" " }\n" " }\n" " ],\n" " \"returnTo\": {\n" " \"type\": \"VARIABLE\",\n" " \"variableName\": \"sTimeStamp\"\n" " }\n" " },\n" " {\n" " \"uid\": \"bd3915ce-a105-4530-b110-38cfd83cbf45\",\n" " \"commandName\": \"toString\",\n" " \"packageName\": \"Number\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"input\",\n" " \"value\": {\n" " \"type\": \"NUMBER\",\n" " \"expression\": \"$nErrorLine$\"\n" " }\n" " },\n" " {\n" " \"name\": \"numFormatDigits\",\n" " \"value\": {\n" " \"type\": \"NUMBER\",\n" " \"number\": \"0\"\n" " }\n" " }\n" " ],\n" " \"returnTo\": {\n" " \"type\": \"VARIABLE\",\n" " \"variableName\": \"sErrorLine\"\n" " }\n" " },\n" " {\n" " \"uid\": \"41f18175-55bb-40ba-bff7-4fd9d3d82aed\",\n" " \"commandName\": \"assign\",\n" " \"packageName\": \"String\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"sourceString\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"$sErrorLine$:$sErrorMessage$\"\n" " }\n" " }\n" " ],\n" " \"returnTo\": {\n" " \"type\": \"VARIABLE\",\n" " \"variableName\": \"sErrorMessage\"\n" " }\n" " },\n" " {\n" " \"uid\": \"ea11d681-3f54-4627-857c-0e734e68b650\",\n" " \"commandName\": \"captureWindow\",\n" " \"packageName\": \"Screen\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"windowTitle\",\n" " \"value\": {\n" " \"type\": \"WINDOW\",\n" " \"window\": {\n" " \"type\": \"WINDOW\",\n" " \"presetType\": \"CURRENTLY_ACTIVE\"\n" " }\n" " }\n" " },\n" " {\n" " \"name\": \"filePath\",\n" " \"value\": {\n" " \"type\": \"FILE\",\n" " \"expression\": \"file://$dFolder{sErrorSnapshot}$/$sTimeStamp$_Send%20Email.jpeg\"\n" " }\n" " },\n" " {\n" " \"name\": \"isOverwriteFile\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": false\n" " }\n" " }\n" " ]\n" " },\n" " {\n" " \"uid\": \"b0f069ec-cdf5-4a9e-8659-41c92c50362f\",\n" " \"commandName\": \"logToFile\",\n" " \"packageName\": \"LogToFile\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"filePath\",\n" " \"value\": {\n" " \"type\": \"FILE\",\n" " \"expression\": \"file://$dFolder{sErrorLog}$/$sTimeStamp$_Check%20Files%20and%20Check.txt\"\n" " }\n" " },\n" " {\n" " \"name\": \"logContent\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"$sErrorMessage$\"\n" " }\n" " },\n" " {\n" " \"name\": \"appendTimestamp\",\n" " \"value\": {\n" " \"type\": \"BOOLEAN\",\n" " \"boolean\": false\n" " }\n" " },\n" " {\n" " \"name\": \"logOption\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"APPEND_FILE\"\n" " }\n" " },\n" " {\n" " \"name\": \"encodingValue\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"ANSI\"\n" " }\n" " }\n" " ]\n" " },\n" " {\n" " \"uid\": \"8072d185-5b98-4627-8b72-0893094ae34b\",\n" " \"commandName\": \"assign\",\n" " \"packageName\": \"String\",\n" " \"disabled\": false,\n" " \"attributes\": [\n" " {\n" " \"name\": \"sourceString\",\n" " \"value\": {\n" " \"type\": \"STRING\",\n" " \"expression\": \"FAILED ($sErrorMessage$)\"\n" " }\n" " }\n" " ],\n" " \"returnTo\": {\n" " \"type\": \"VARIABLE\",\n" " \"variableName\": \"sModuleStatus\"\n" " }\n" " }\n" " ],\n" " \"attributes\": [\n" " {\n" " \"name\": \"exceptionType\",\n" " \"value\": {\n" " \"type\": \"EXCEPTION\",\n" " \"exceptionName\": \"BotException\",\n" " \"packageName\": \"ErrorHandler\"\n" " }\n" " }\n" " ],\n" " \"returns\": {\n" " \"errorMessage\": {\n" " \"type\": \"VARIABLE\",\n" " \"variableName\": \"sErrorMessage\"\n" " },\n" " \"errorLineNumber\": {\n" " \"type\": \"VARIABLE\",\n" " \"variableName\": \"nErrorLine\"\n" " }\n" " }\n" " }\n" " ]\n" " }\n" " ],\n" " \"variables\": [\n" " {\n" " \"name\": \"prompt-assignment\",\n" " \"description\": \"A variable you can use for assignments\",\n" " \"type\": \"STRING\",\n" " \"subtype\": \"UNDEFINED\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": false\n" " },\n" " {\n" " \"name\": \"sTimeStamp\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": false,\n" " \"subtype\": \"UNDEFINED\",\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"sErrorLine\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": true,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"nErrorLine\",\n" " \"description\": \"\",\n" " \"type\": \"NUMBER\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": false,\n" " \"defaultValue\": {\n" " \"type\": \"NUMBER\",\n" " \"number\": \"0\"\n" " }\n" " },\n" " {\n" " \"name\": \"sErrorMessage\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": true,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"dFolder\",\n" " \"description\": \"\",\n" " \"type\": \"DICTIONARY\",\n" " \"readOnly\": false,\n" " \"input\": true,\n" " \"output\": false,\n" " \"subtype\": \"STRING\",\n" " \"defaultValue\": {\n" " \"type\": \"DICTIONARY\",\n" " \"dictionary\": []\n" " }\n" " },\n" " {\n" " \"name\": \"sModuleStatus\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": true,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"sTag\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": true,\n" " \"output\": false,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"sSubject\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": true,\n" " \"output\": false,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"sEmail_Message\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": true,\n" " \"output\": false,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"sAttechment\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": true,\n" " \"output\": false,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"sEmailConfig_Path\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": true,\n" " \"output\": false,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"sRecipient\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": false,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"sCc_Group\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": false,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"sPrefix\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": false,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"rGet_Email_Info\",\n" " \"description\": \"\",\n" " \"type\": \"RECORD\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": false,\n" " \"subtype\": \"UNDEFINED\",\n" " \"defaultValue\": {\n" " \"type\": \"RECORD\",\n" " \"record\": {\n" " \"schema\": [],\n" " \"values\": []\n" " }\n" " }\n" " },\n" " {\n" " \"name\": \"sFrom_Address\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": false,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"sEmail_Server_Host\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": false,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"nEmail_Server_Port\",\n" " \"description\": \"\",\n" " \"type\": \"NUMBER\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": false,\n" " \"defaultValue\": {\n" " \"type\": \"NUMBER\",\n" " \"number\": \"0\"\n" " }\n" " },\n" " {\n" " \"name\": \"sPassword\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": false,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"sUsername\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": false,\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " },\n" " {\n" " \"name\": \"sEmail_Server_Port\",\n" " \"description\": \"\",\n" " \"type\": \"STRING\",\n" " \"readOnly\": false,\n" " \"input\": false,\n" " \"output\": false,\n" " \"subtype\": \"UNDEFINED\",\n" " \"defaultValue\": {\n" " \"type\": \"STRING\",\n" " \"string\": \"\"\n" " }\n" " }\n" " ],\n" " \"breakpoints\": [],\n" " \"packages\": [\n" " {\n" " \"name\": \"Datetime\",\n" " \"version\": \"2.2.0-20201014-042531\"\n" " },\n" " {\n" " \"name\": \"Datetime\",\n" " \"version\": \"2.2.0-20201014-042531\"\n" " },\n" " {\n" " \"name\": \"Delay\",\n" " \"version\": \"2.2.0-20201014-042532\"\n" " },\n" " {\n" " \"name\": \"Delay\",\n" " \"version\": \"2.2.0-20201014-042532\"\n" " },\n" " {\n" " \"name\": \"Email\",\n" " \"version\": \"3.1.0-20201104-062204\"\n" " },\n" " {\n" " \"name\": \"Email\",\n" " \"version\": \"3.1.0-20201104-062204\"\n" " },\n" " {\n" " \"name\": \"ErrorHandler\",\n" " \"version\": \"2.2.0-20201014-042541\"\n" " },\n" " {\n" " \"name\": \"ErrorHandler\",\n" " \"version\": \"2.2.0-20201014-042541\"\n" " },\n" " {\n" " \"name\": \"Excel_MS\",\n" " \"version\": \"6.3.0-20211028-055115\"\n" " },\n" " {\n" " \"name\": \"Excel_MS\",\n" " \"version\": \"6.3.0-20211028-055115\"\n" " },\n" " {\n" " \"name\": \"If\",\n" " \"version\": \"2.1.0-20200921-085758\"\n" " },\n" " {\n" " \"name\": \"If\",\n" " \"version\": \"2.1.0-20200921-085758\"\n" " },\n" " {\n" " \"name\": \"LogToFile\",\n" " \"version\": \"2.2.0-20201014-042806\"\n" " },\n" " {\n" " \"name\": \"LogToFile\",\n" " \"version\": \"2.2.0-20201014-042806\"\n" " },\n" " {\n" " \"name\": \"Loop\",\n" " \"version\": \"2.1.0-20201014-042808\"\n" " },\n" " {\n" " \"name\": \"Loop\",\n" " \"version\": \"2.1.0-20201014-042808\"\n" " },\n" " {\n" " \"name\": \"Number\",\n" " \"version\": \"2.1.0-20201014-042823\"\n" " },\n" " {\n" " \"name\": \"Number\",\n" " \"version\": \"2.1.0-20201014-042823\"\n" " },\n" " {\n" " \"name\": \"Screen\",\n" " \"version\": \"2.1.0-20201014-043037\"\n" " },\n" " {\n" " \"name\": \"Screen\",\n" " \"version\": \"2.1.0-20201014-043037\"\n" " },\n" " {\n" " \"name\": \"Step\",\n" " \"version\": \"2.0.0-20201023-202658\"\n" " },\n" " {\n" " \"name\": \"Step\",\n" " \"version\": \"2.0.0-20201023-202658\"\n" " },\n" " {\n" " \"name\": \"String\",\n" " \"version\": \"3.1.0-20201014-043052\"\n" " },\n" " {\n" " \"name\": \"String\",\n" " \"version\": \"3.1.0-20201014-043052\"\n" " },\n" " {\n" " \"name\": \"System\",\n" " \"version\": \"3.0.0-20200921-090225\"\n" " },\n" " {\n" " \"name\": \"System\",\n" " \"version\": \"3.0.0-20200921-090225\"\n" " }\n" " ],\n" " \"migrationJournalReviewIds\": [],\n" " \"workItemTemplateName\": null,\n" " \"properties\": {\n" " \"botCodeVersion\": \"1\",\n" " \"improvedNumberSupport\": false,\n" " \"timeout\": \"0s\",\n" " \"automationPriority\": \"PRIORITY_MEDIUM\"\n" " }\n" "}\n") matches = re.finditer(regex, test_str, re.MULTILINE) for matchNum, match in enumerate(matches, start=1): print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group())) for groupNum in range(0, len(match.groups())): groupNum = groupNum + 1 print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.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