区别?:?!和 ?=
2022-08-30 01:41:58
我搜索了这些表达的含义,但无法理解它们之间的确切区别。
这是他们说的:
-
?:
匹配表达式,但不捕获它。 -
?=
匹配后缀,但将其从捕获中排除。 -
?!
如果后缀不存在,则匹配。
我尝试在简单的正则表达式中使用这些,并得到了类似的结果。
例如:以下 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]+)*