я задумался и написал
/([^a-z]+)asd([^a-z]+)/iт.е. слово обрамленное как минимум одной не буквой (цифрой, пробелом, знаком препинания). но эта регулярка не срабатывала если слово находилось вначале или в конце строки. тогда я добавил условие что у слова слева или 0 любых символов от начала строки
(^.{0}) или как минимум одна небуква([^a-z]+)получилось:
((^.{0})|([^a-z]+)) а после слова идет как минимум одна небуква или 0 любых символов до конца строки, т.е. (([^a-z]+)|(.{0}$)) в итоге получилась регулярка /((^.{0})|([^a-z]+))asd(([^a-z]+)|(.{0}$))/i через js ее можно смотреть вот так: javascript:alert((/((^.{0})|([^a-z]+))asd(([^a-z]+)|(.{0}$))/i.test("as3asd3 sasd"))?"y":"n"); или через php вот так:
$tests = array("asd", "asdasd", "asd1", "123asde33", "qwe 3 sdasd 3asd3");
foreach ($tests as $test)
echo $test . ' '. intval(preg_match('/((^.{0})|([^a-z]+))asd(([^a-z]+)|(.{0}$))/i', $test)) . "
";

Thnx, nice solvation.
ReplyDeleteэх, жалко на блоггере нет никакой статистики, так бы я обязательно сказал сколько месяцев уже не было ни одного комментария на мой бред =)
ReplyDelete