mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-12-27 05:03:07 +01:00
27 lines
812 B
Python
27 lines
812 B
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import re
|
||
|
|
||
|
SED_REGEX = re.compile(
|
||
|
# This part matches an optional nick followed by ":" or ",", used to direct replacement
|
||
|
# at a particular user.
|
||
|
r"^(?:(?P<nick>.+?)[:,] )?"
|
||
|
|
||
|
# Match and save the delimiter (any one symbol) as a named group
|
||
|
r"s(?P<delim>[^\w\s])"
|
||
|
|
||
|
# Match the pattern to replace, which can be any string up to the first instance of the delimiter
|
||
|
r"(?P<pattern>(?:(?!(?P=delim)).)*)(?P=delim)"
|
||
|
|
||
|
# Ditto with the replacement
|
||
|
r"(?P<replacement>(?:(?!(?P=delim)).)*)"
|
||
|
|
||
|
# Optional final delimiter plus flags at the end
|
||
|
r"(?:(?P=delim)(?P<flags>[a-z]*))?"
|
||
|
)
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
print("This is the full regex used by the plugin; paste it into your favourite regex tester "
|
||
|
"for debugging:")
|
||
|
print(SED_REGEX)
|