# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(?<emoji>(:)([a-zA-Z0-9_]+)(:))|(?<embed_emoji>(\[)([a-zA-Z0-9_]+)(\])\([^()]*\))"
test_str = (":emojisomeothertext:\n"
":someothertextemoji:\n"
":someemojiothertext:\n"
":emoji:\n"
"text with no emoji\n"
"text with :emoji_some_text: and no emoji\n"
"text with :emoji:\n"
"text with [ImageEmoji]\n"
"These image [emoji]'s were added due to vesktop making emojis into embeds like that.\n"
"This regex isn't perfect but i doubt anyoue would post emojis like: \"[this:\" anyway.\n"
"[HuTaoPeek](https://cdn.discordapp.com/emojis/844898526243586049.webp?size=512&name=HuTaoPeek)")
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