подскажите регулярное выражение

Leonid

PHP? нет, не слышал...
подскажите регулярное выражение

есть такие строки - название оборудования, например

токарно-винторезный станок 16К20
фрезерный станок 1ГФ82
компрессор 1R65-18U для водорода

надо выбрать только марки, т.е. строки "16К20" или "1R65-18U"
очевидно признак такой - выбрать слово, которое содержит буквы и цифры, а также могут быть знаки - и .
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
А сам как пробовал?
Как?
 

Leonid

PHP? нет, не слышал...
сам пробовал, но у меня ступор. регулярка типа
"/ [0-9А-ЯA-Z]{3,10}/sm"
выберет все слова, не зависимо от того, есть в них цифры или нет (это пока без учета тире и точки)
 

Dovg

Продвинутый новичок
И кстати она это делает правильно ;)

надо как-то так:

[буквы и цифры]*[то_что_не_встречается_в_нормальных_словах]+[буквы и цифры]*

т.е. отдельно выдели то, чем отличается нормальное слово от марки оборудования
 

HEm

Сетевой бобер
Может тебе имеет смысл собрать все марки в отдельный словарь?
 

Lexx918

Новичок
Если взять за правило, что искомое слово обрамлено пробелами и содержит внутри хотябы одну цифру, то можно так:
PHP:
$str = ' токарно-винторезный станок 16К20 фрезерный станок 1ГФ82 компрессор 1R65-18U для водорода ';
preg_match_all('/( [^ ]*?[0-9][^ ]*? )/i', $str, $m);
echo '<pre>'; print_r($m[0]); echo '</pre>';
на выходе имеем:
PHP:
Array
(
    [0] =>  16К20 
    [1] =>  1ГФ82 
    [2] =>  1R65-18U 
)
 
Сверху