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

/
/
gm

Test String

Code Generator

Generated Code

$re = '/(?!smi)(\|[\s\S]*?)\|(?:\n\n)/m'; $str = '--- # Source: https://raw.githubusercontent.com/MicrosoftDocs/dynamics365smb-devitpro-pb/main/dev-itpro/developer/devenv-choosing-runtime.md title: "Choosing runtime version in AL" description: "How to choose runtime in AL for Business Central." author: SusanneWindfeldPedersen ms.custom: na ms.date: 09/05/2023 ms.reviewer: na ms.suite: na ms.tgt_pltfrm: na ms.topic: conceptual ms.author: solsen --- # Choosing runtime version in AL The capabilities and features of AL for [!INCLUDE[prod_short](../includes/prod_short.md)] are determined by the runtime version. The runtime version can be specified in the `app.json` file for a project. It\'s expressed with the following syntax, for example: `"runtime": "12.0"`. Specifying the runtime version is mostly interesting for scenarios where you develop for on-prem or a mix of on-prem and SaaS. For SaaS only development, you will most likely be interested in using the current runtime. If the runtime setting is not specified, the compiler will detect the runtime that matches the server. The runtime version specified in the `app.json` file determines which runtime the project is targeting. An extension can be published to a server with the same or a later runtime version as the runtime version specified in the `app.json` file of the extension. ## Currently available runtime versions The available options for setting the `runtime` in AL are: |Runtime version|Shipped with |Internal version| |---------------|-----------------------------------|----------------| |`1.0` |Business Central April 2018 Release|12.0| |`2.0` |Business Central Fall \'18 Release |13.0| |`3.0` |Business Central Spring \'19 Release|14.0| |`4.0` |Business Central 2019 release wave 2|15.0| |`5.0` |Business Central 2020 release wave 1|16.0| |`6.0` |Business Central 2020 release wave 2|17.0| |`6.1` |Business Central 2020 release wave 2 update 1|17.1| |`6.2` |Business Central 2020 release wave 2 update 2|17.2| |`6.3` |Business Central 2020 release wave 2 update 3|17.3| |`6.4` |Business Central 2020 release wave 2 update 4|17.4| |`7.0` |Business Central 2021 release wave 1|18.0| |`7.1` |Business Central 2021 release wave 1 update 1|18.1| |`7.2` |Business Central 2021 release wave 1 update 2|18.2| |`8.0` |Business Central 2021 release wave 2|19.0| |`9.0` |Business Central 2022 release wave 1|20.0| |`9.1` |Business Central 2022 release wave 1 update 1|20.1| |`9.2` |Business Central 2022 release wave 1 update 2|20.2| |`10.0` |Business Central 2022 release wave 2|21.0| |`11.0` |Business Central 2023 release wave 1|22.0| |`12.0` |Business Central 2023 release wave 2|23.0| ## Setting the runtime version Selecting the runtime depends on the circumstances. If you, for example, have customers that run on older versions, you should set the runtime to be the minimum version that works to ensure compatibility. This will prevent you from inadvertently using features that are not supported on the older server. If an earlier runtime is picked, it can be good idea to have a daily or weekly build that tests the extension against the latest version of the runtime. Testing against the latest runtime can detect new diagnostics, such as warnings or errors, that are introduced in the compiler or changes in the platform runtime. Though it may not be possible to refactor code for a future runtime, while using an older runtime, staying on top of these changes may help making design decisions early on. ## See Also [JSON Files](devenv-json-files.md) [Launch JSON file](devenv-json-launch-file.md) The available options for setting the `runtime` in AL are: |Runtime version|Shipped with |Internal version| |---------------|-----------------------------------|----------------| |`1.0` |Business Central April 2018 Release|12.0| |`2.0` |Business Central Fall \'18 Release |13.0| |`3.0` |Business Central Spring \'19 Release|14.0| |`4.0` |Business Central 2019 release wave 2|15.0| |`5.0` |Business Central 2020 release wave 1|16.0| |`6.0` |Business Central 2020 release wave 2|17.0| |`6.1` |Business Central 2020 release wave 2 update 1|17.1| |`6.2` |Business Central 2020 release wave 2 update 2|17.2| |`6.3` |Business Central 2020 release wave 2 update 3|17.3| |`6.4` |Business Central 2020 release wave 2 update 4|17.4| |`7.0` |Business Central 2021 release wave 1|18.0| |`7.1` |Business Central 2021 release wave 1 update 1|18.1| |`7.2` |Business Central 2021 release wave 1 update 2|18.2| |`8.0` |Business Central 2021 release wave 2|19.0| |`9.0` |Business Central 2022 release wave 1|20.0| |`9.1` |Business Central 2022 release wave 1 update 1|20.1| |`9.2` |Business Central 2022 release wave 1 update 2|20.2| |`10.0` |Business Central 2022 release wave 2|21.0| |`11.0` |Business Central 2023 release wave 1|22.0| |`12.0` |Business Central 2023 release wave 2|23.0| '; preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0); // Print the entire match result var_dump($matches);

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 PHP, please visit: http://php.net/manual/en/ref.pcre.php