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

What does (?i) and ?@ in this regex mean

本问题已经有最佳答案,请猛点这里访问。

在下面的regex中,什么是"(?我)"和"?"意思是?

1
(?i)<.*?@(?P<domain>\w+\.\w+)(?=>)

我知道"?"表示零或一,并且我设置大小写不敏感。

此regex从mailto字段中的电子邮件地址捕获域,但不包括@符号。它是从splunk 6.0.2中生成的erex命令


演示地点:https://regex101.com/r/he9gb4/1

1
(?i)<.*?@(?P<domain>\w+\.\w+)(?=>)

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

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

?@只不过是@字面上与@字符相匹配。

你的?@中的?.*?的一部分,我们称之为懒惰的操作员,它将给出<@之间的文本。

如果你不在.*之后使用?,它将匹配<之后的所有内容。(我们称之为贪婪运营者)


?以下是不洁或懒散的修饰语:

.*?

意思是:"在检测到后面的@字符之前,一切都很好"。否则,*将匹配所有内容,直到字符串结束。

请阅读:http://www.regular-expressions.info/repeat.html