Здравствуйте. Слова разделены на слоги символом "·". Например:man·u·al, man·u·fac·ture, mar·a·thon, hap·pen и т.д. Нужно регулярное выражение, которое бы определяло является ли разделенное слово данным. Например: man·u·al=manual, hap·pen!=haven и т.д. Пока единственное что придумал, это из данного слова формировать выражение, у которого после каждого символа "(·)*". Например:haven - h(·)*a(·)*v(·)*e(·)*n, manual - m(·)*a(·)*n(·)*u(·)*a(·)*l.
а если выкинуть эти точки из строки да и сравнить? по моему так гораздо проще....либо я не так понял задачу...
К сожалению, в силу специфики структуры данных в которой находится список слов, слова от туда нельзя читать (а значит удалять эти точки или другим способом обрабатывать). Есть лишь метод, который ведет поиск по структуре с помощью регулярных выражений (в случае успешного выполнения регулярного выражения относительно слова вернет № записи, что мне и требуется).
ОМГ! Код (PHP): $str='man·u·al'; if(str_replace('·','',$str)=='manual') { echo $str; //man·u·al } Код (PHP): $str='man·u·al'; $str_r=str_replace('·','',$str); if($str_r=='manual') { echo $str; //man·u·al } Код (PHP): $str='man·u·al'; $str=str_replace('·','',$str); if($str=='manual') { echo $str; //manual } А также лучше, чтобы не писать каждый раз условие (на сильно) на проверку равенства, прогоняйте через цикл и массив...
Значит, что эти слова с точками где-то в недоступном для программы месте. Она не знает, что там за слова и, соответственно, невозможно сделать str_replace - просто нету той самой строки, в которой замены производить нужно. Я так это понял. Думаю, можно пойти обратным путём - не пытаться отбрасывать точки в тех словах, которые в некой недоступной базе, а добавлять эти точки в нужные места в словах, которые нужно искать (которые есть в скрипте). Ну, можешь ещё так попробовать m·?a·?n·?u·?a·?l