Я искал значение этих выражений, но не мог понять точного различия между ними. Это то, что они говорят:
-
?:Сопоставить выражение, но не записывать его. -
?=Сопоставьте суффикс, но исключите его из захвата. -
?!Соответствует, если суффикс отсутствует.
Я попытался использовать их в простой RegEx и получил похожие результаты для всех. Пример: следующие 3 выражения дают очень похожие результаты.
-
[a-zA-Z0-9._-][email protected][a-zA-Z0-9-]+(?!\.[a-zA-Z0-9]+)* -
[a-zA-Z0-9._-][email protected][a-zA-Z0-9-]+(?=\.[a-zA-Z0-9]+)* -
[a-zA-Z0-9._-][email protected][a-zA-Z0-9-]+(?:\.[a-zA-Z0-9]+)*