我搜索了这些表达式的含义,但无法理解它们之间的确切差异.这就是他们所说的:
?: 匹配表达式但不捕获它.?= 匹配后缀但将其从捕获中排除.?! 匹配if后缀不存在.我尝试在简单的RegEx中使用它们,并获得了类似的结果.示例:以下3个表达式给出非常相似的结果.
[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+(?!\.[a-zA-Z0-9]+)*[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+(?=\.[a-zA-Z0-9]+)*[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9]+)*