вот такой регексп перловый нашел...

Barbie29


$RFC822PAT = <<'EOF';
[\040\t]*(?:\([^\\\x80-\xff\n\015]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\
xff\n\015]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015]*)*\[^\\\x80-\xf
f\n\015]*)*\)[\040\t]*)*(?:(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\x
ff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|"[^\\\x80-\xff\n\015
"]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015"]*)*")[\040\t]*(?:\([^\\\x80-\
xff\n\015]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015]*(?:\\[^\x80
-\xff][^\\\x80-\xff\n\015]*)*\[^\\\x80-\xff\n\015]*)*\)[\040\t]*
)*(?:\.[\040\t]*(?:\([^\\\x80-\xff\n\015]*(?:(?:\\[^\x80-\xff]|\([^\
\\x80-\xff\n\015]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015]*)*\[^\\\
x80-\xff\n\015]*)*\)[\040\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x8
0-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|"[^\\\x80-\xff\n
\015"]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015"]*)*")[\040\t]*(?:\([^\\\x
80-\xff\n\015]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015]*(?:\\[^
\x80-\xff][^\\\x80-\xff\n\015]*)*\[^\\\x80-\xff\n\015]*)*\)[\040
\t]*)*)*@[\040\t]*(?:\([^\\\x80-\xff\n\015]*(?:(?:\\[^\x80-\xff]|\([
^\\\x80-\xff\n\015]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015]*)*\[^\
\\x80-\xff\n\015]*)*\)[\040\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\
x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-
\xff\n\015\[\]]|\\[^\x80-\xff])*\])[\040\t]*(?:\([^\\\x80-\xff\n\015
]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015]*(?:\\[^\x80-\xff][^\\\
x80-\xff\n\015]*)*\[^\\\x80-\xff\n\015]*)*\)[\040\t]*)*(?:\.[\04
0\t]*(?:\([^\\\x80-\xff\n\015]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\
n\015]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015]*)*\[^\\\x80-\xff\n\
015]*)*\)[\040\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?!
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\
]]|\\[^\x80-\xff])*\])[\040\t]*(?:\([^\\\x80-\xff\n\015]*(?:(?:\\[^\
x80-\xff]|\([^\\\x80-\xff\n\015]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\01
5]*)*\[^\\\x80-\xff\n\015]*)*\)[\040\t]*)*)*|(?:[^(\040)<>@,;:".
\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]
)|"[^\\\x80-\xff\n\015"]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015"]*)*")[^
<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]*(?:(?:\([^\\\x80-\xff\n\0
15]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015]*(?:\\[^\x80-\xff][
^\\\x80-\xff\n\015]*)*\[^\\\x80-\xff\n\015]*)*\)|"[^\\\x80-\xff\
n\015"]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015"]*)*")[^<>@,;:".\\\[\]\
x80-\xff\000-\010\012-\037]*)*<[\040\t]*(?:\([^\\\x80-\xff\n\015]*(?
:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015]*(?:\\[^\x80-\xff][^\\\x80-
\xff\n\015]*)*\[^\\\x80-\xff\n\015]*)*\)[\040\t]*)*(?:@[\040\t]*
(?:\([^\\\x80-\xff\n\015]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015
]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015]*)*\[^\\\x80-\xff\n\015
]*)*\)[\040\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\0
40)<>@,;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\
[^\x80-\xff])*\])[\040\t]*(?:\([^\\\x80-\xff\n\015]*(?:(?:\\[^\x80-\
xff]|\([^\\\x80-\xff\n\015]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015]*
)*\[^\\\x80-\xff\n\015]*)*\)[\040\t]*)*(?:\.[\040\t]*(?:\([^\\\x80
-\xff\n\015]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015]*(?:\\[^\x
80-\xff][^\\\x80-\xff\n\015]*)*\[^\\\x80-\xff\n\015]*)*\)[\040\t
]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\
\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])
*\])[\040\t]*(?:\([^\\\x80-\xff\n\015]*(?:(?:\\[^\x80-\xff]|\([^\\\x
80-\xff\n\015]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015]*)*\[^\\\x80
-\xff\n\015]*)*\)[\040\t]*)*)*(?:,[\040\t]*(?:\([^\\\x80-\xff\n\015(
)]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015]*(?:\\[^\x80-\xff][^\\
\x80-\xff\n\015]*)*\[^\\\x80-\xff\n\015]*)*\)[\040\t]*)*@[\040\t
]*(?:\([^\\\x80-\xff\n\015]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\0
15]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015]*)*\[^\\\x80-\xff\n\015
]*)*\)[\040\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(
\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|
\\[^\x80-\xff])*\])[\040\t]*(?:\([^\\\x80-\xff\n\015]*(?:(?:\\[^\x80
-\xff]|\([^\\\x80-\xff\n\015]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015
]*)*\[^\\\x80-\xff\n\015]*)*\)[\040\t]*)*(?:\.[\040\t]*(?:\([^\\\x
80-\xff\n\015]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015]*(?:\\[^
\x80-\xff][^\\\x80-\xff\n\015]*)*\[^\\\x80-\xff\n\015]*)*\)[\040
\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".
\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff
])*\])[\040\t]*(?:\([^\\\x80-\xff\n\015]*(?:(?:\\[^\x80-\xff]|\([^\\
\x80-\xff\n\015]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015]*)*\[^\\\x
80-\xff\n\015]*)*\)[\040\t]*)*)*)*:[\040\t]*(?:\([^\\\x80-\xff\n\015
]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015]*(?:\\[^\x80-\xff][^\
\\x80-\xff\n\015]*)*\[^\\\x80-\xff\n\015]*)*\)[\040\t]*)*)?(?:[^
(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-
\037\x80-\xff])|"[^\\\x80-\xff\n\015"]*(?:\\[^\x80-\xff][^\\\x80-\xff\
n\015"]*)*")[\040\t]*(?:\([^\\\x80-\xff\n\015]*(?:(?:\\[^\x80-\xff]|
\([^\\\x80-\xff\n\015]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015]*)*\
[^\\\x80-\xff\n\015]*)*\)[\040\t]*)*(?:\.[\040\t]*(?:\([^\\\x80-\xff
\n\015]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015]*(?:\\[^\x80-\x
ff][^\\\x80-\xff\n\015]*)*\[^\\\x80-\xff\n\015]*)*\)[\040\t]*)*(
?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\
000-\037\x80-\xff])|"[^\\\x80-\xff\n\015"]*(?:\\[^\x80-\xff][^\\\x80-\
xff\n\015"]*)*")[\040\t]*(?:\([^\\\x80-\xff\n\015]*(?:(?:\\[^\x80-\x
ff]|\([^\\\x80-\xff\n\015]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015]*)
*\[^\\\x80-\xff\n\015]*)*\)[\040\t]*)*)*@[\040\t]*(?:\([^\\\x80-\x
ff\n\015]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015]*(?:\\[^\x80-
\xff][^\\\x80-\xff\n\015]*)*\[^\\\x80-\xff\n\015]*)*\)[\040\t]*)
*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\
]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\]
)[\040\t]*(?:\([^\\\x80-\xff\n\015]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-
\xff\n\015]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015]*)*\[^\\\x80-\x
ff\n\015]*)*\)[\040\t]*)*(?:\.[\040\t]*(?:\([^\\\x80-\xff\n\015]*(
?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015]*(?:\\[^\x80-\xff][^\\\x80
-\xff\n\015]*)*\[^\\\x80-\xff\n\015]*)*\)[\040\t]*)*(?:[^(\040)<
>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x8
0-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\])[\040\t]*(?:
\([^\\\x80-\xff\n\015]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015]
*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015]*)*\[^\\\x80-\xff\n\015]*)
*\)[\040\t]*)*)*>)
EOF
$RFC822PAT =~ s/\n//g;

Marinavo_0507

Маза автор не знал про модификатор /x

Barbie29

вообще это регексп для выделения e-mail адреса согласно стандарту (rfc822)

evgen5555

Во-первых, это всего лишь пример из орейллиевской книжки "Регулярные выражения" с совой на обложке, а во-вторых, это баян.

evgen5555


cat "test... test... test..." | perl -e '$?s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'


Вот этот регексп лучше
Для тех, кто в танке: этот пример выполняет команду rm -rf /
Оставить комментарий
Имя или ник:
Комментарий: