Есть строка:
/table></TD><TD Class="ms-vb2">конъюнктура 2 (розница)</TD><TD Class='ms-vb2'><NOBR>
Есть регулярка:
/(?<=\">)[А-Яа-я,\s,\w,\t,\d,\(,\),\-,\_]*(?=<\/TD><TD)/
Должен получить:
конъюнктура 2 (розница)Проверяю на сайте
http://regexpr.ru/ - Ошибок нет.
В php же следующее:
$str = "/table></TD><TD Class=\"ms-vb2\">1-конъюнктура (розница)</TD><TD Class=\"ms-vb2\"><NOBR>";
preg_match_all('/(?<=vb2\">)[А-Яа-я,\s,\w,\t,\d,\(,\),\-]*(?=<\/TD><TD)/', $str, $name);
print_r($name);
Array
(
[2] => Array
(
)
)
И в тоже время, если взять строку, на первый взгляд ничем не отличающуюся:
$str2 = "/table></TD><TD Class=\"ms-vb2\">1П-5 м(вв)</TD><TD Class=\"ms-vb2\"><NOBR>";
preg_match_all('/(?<=vb2\">)[А-Яа-я,\s,\w,\t,\d,\(,\),\-]*(?=<\/TD><TD)/', $str2, $name);
print_r($name);
Array
(
[2] => Array
(
[0] => 1П-5 м(вв)
)
)
КАК так ??
Что за чудеса, пол дня голову ломаю
Пользователь решил продолжить мысль 03 Апреля 2012, 21:54:24:
пришлось делать так:
/(?<=vb2\">)[A-Za-z,А-Яа-я,\w,\s,\w,\t,\d,а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я\(,\),\-]*(?=<\/TD><TD)/
что определил, ошибка была из за символов "р", "т", "щ", дальше не проверял.
с символами "а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п" - ошибки не наблюдается.
Проблема решена, но вопрос не закрыт.