正则表达式摆脱捕获组

Geo*_*ler 2 python regex capturing-group

我有以下正则表达式: (?i)p\w+@t(-)?\w+(-\w+)?(\.\w+)?\.at匹配数据,如

papFoo@t-bar.at
PapBar@tfoo.ring.at
Run Code Online (Sandbox Code Playgroud)

如何重写此正则表达式以使用非捕获组?

  • [?i]p\w+@t[-]?\w+[-\w+]?[\.\w+]?\.at 将不再匹配任何结果
  • (?:?i)p\w+@t(?:-)?\w+(?:-\w+)?(?:\.\w+)?\.at 同样在这里

即我(?i)p应该可写,?ip但在https://regex101.com上我尝试使用(?:?i)p\w+@t(?:-)?\w+(?:-\w+)?(?:\.\w+)?\.at非捕获组时只会出错.

最后python3应该评估正则表达式.

Adr*_*ian 5

第一个"组" (?i)不是捕获组,它是一个标志集,打开表达式的大小写不敏感.非捕获版本应该是:

(?i)p\w+@t-?\w+(?:-\w+)?(?:\.\w+)?\.at
Run Code Online (Sandbox Code Playgroud)

哪个匹配正确.