这个正则表达式中的(?i)和?@是什么意思

Dee*_*bek 13 regex splunk

在下面的正则表达式中,"(?i)"和"?@"是什么意思?

(?i)<.*?@(?P<domain>\w+\.\w+)(?=>)
Run Code Online (Sandbox Code Playgroud)

我知道 "?" 表示零或一,我设置不区分大小写.

此正则表达式从mailto字段中的电子邮件地址捕获域,但不包括@符号.它是从SPLUNK 6.0.2中生成的erex命令

ael*_*lor 21

演示:https://regex101.com/r/hE9gB4/1

(?i)<.*?@(?P<domain>\w+\.\w+)(?=>)
Run Code Online (Sandbox Code Playgroud)

它实际上从电子邮件ID获取您的域名:

(?i) 使它匹配不区分大小写和

?@什么,但字面上@匹配字符@.

??@的一部分.*?,我们称之为一个懒惰的运营商,它会给你的文字<@

如果你不使用它?之后.*它将匹配所有事情<到最后.(我们称之为贪婪的运营商)