Я пытаюсь сопоставить адреса электронной почты, но только если им не предшествует "mailto:". Я пытаюсь это регулярное выражение:
"/(?<!mailto:)[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})/"
против этой строки:
'<a href="mailto:someemail@domain.com">EMAIL</a> ... otheremail@domain.com '
Я ожидал бы поймать только 'otheremail@domain.com'
, но я также получаю 'omeemail@domain.com'
- см. Пропущенный 's'
. Интересно, что здесь не так? Разве я не могу иметь нормальное регулярное выражение после утверждения о взгляде?
Весь мой пример на PHP выглядит так:
<code>$testString = '<a href="mailto:someemail@domain.com">EMAIL</a> ... otheremail@domain.com ';
$pattern = "/(?<!mailto:)[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})/";
preg_match_all($pattern, $testString, $matches);
echo('<pre>');print_r($matches);echo('
');
Спасибо!