diff options
author | 2022-02-21 12:59:54 +0000 | |
---|---|---|
committer | 2022-02-21 12:59:54 +0000 | |
commit | a82c9a87c7f14a98bbdfa069b20fc9372f67d167 (patch) | |
tree | 30a061a43fa1889d83fb1ab333a15b4355dfc2a4 /botcore/regex.py | |
parent | Update how we auto-generate docs (diff) | |
parent | Merge pull request #23 from python-discord/bump-deps (diff) |
Merge branch 'main' into port-utilities
Diffstat (limited to 'botcore/regex.py')
-rw-r--r-- | botcore/regex.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/botcore/regex.py b/botcore/regex.py index cb1832d3..036a5113 100644 --- a/botcore/regex.py +++ b/botcore/regex.py @@ -19,3 +19,30 @@ Regex for discord server invites. :meta hide-value: """ + +FORMATTED_CODE_REGEX = re.compile( + r"(?P<delim>(?P<block>```)|``?)" # code delimiter: 1-3 backticks; (?P=block) only matches if it's a block + r"(?(block)(?:(?P<lang>[a-z]+)\n)?)" # if we're in a block, match optional language (only letters plus newline) + r"(?:[ \t]*\n)*" # any blank (empty or tabs/spaces only) lines before the code + r"(?P<code>.*?)" # extract all code inside the markup + r"\s*" # any more whitespace before the end of the code markup + r"(?P=delim)", # match the exact same delimiter from the start again + re.DOTALL | re.IGNORECASE # "." also matches newlines, case insensitive +) +""" +Regex for formatted code, using Discord's code blocks. + +:meta hide-value: +""" + +RAW_CODE_REGEX = re.compile( + r"^(?:[ \t]*\n)*" # any blank (empty or tabs/spaces only) lines before the code + r"(?P<code>.*?)" # extract all the rest as code + r"\s*$", # any trailing whitespace until the end of the string + re.DOTALL # "." also matches newlines +) +""" +Regex for raw code, *not* using Discord's code blocks. + +:meta hide-value: +""" |