如何在Telethon的pattern正则匹配中添加REGEX FLAGS标志位
Telethon 为Pattern添加自定义正则标志位的方法
Telethon的pattern参数支持两种传入格式,可按需选择实现添加额外正则标志位的需求:
- 方式一:使用正则内联标志
直接在正则表达式开头添加对应标志的内联简写即可,多个标志可以合并写在同一组括号内。其中(?m)就对应re.MULTILINE,和原有忽略大小写的(?i)合并后写法如下:@client.on(events.NewMessage(pattern='(?im).*Hello'))
其他常用内联标志对应关系:(?s)=re.DOTALL、(?x)=re.VERBOSE。 - 方式二:传入预编译的正则对象
如果你需要更清晰的标志位声明,或者需要使用不支持内联简写的特殊标志,可以先通过re.compile预编译正则,再把编译后的对象传给pattern参数:import re from telethon import events # 多个标志位用|分隔即可 compiled_pattern = re.compile(r'.*Hello', re.IGNORECASE | re.MULTILINE) @client.on(events.NewMessage(pattern=compiled_pattern))
内容的提问来源于stack exchange,提问作者Rafael
相关产品推荐
相关产品推荐

