А что, указание зарплаты уже отменили в вакансиях?
От: VovkaMorkovka  
Дата: 26.07.09 13:58
Оценка: +1
На сколько я помню, было правило о обязательном указании вилки зарплат. его что, сняли — плохо, весьма плохо
Re: А что, указание зарплаты уже отменили в вакансиях?
От: Valery A. Boronin Россия linkedin.com/in/boronin
Дата: 28.07.09 11:30
Оценка:
Здравствуйте, VovkaMorkovka, Вы писали:

VM>На сколько я помню, было правило о обязательном указании вилки зарплат. его что, сняли — плохо, весьма плохо

откуда информация? есть правила форума job.offers
Автор: Odi$$ey
Дата: 20.05.04

Посему — если замечены такие вакансии — просьба воспользоваться модерированием и оповестить моедераторов форума.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[2]: А что, указание зарплаты уже отменили в вакансиях?
От: x64 Россия http://x64blog.name
Дата: 20.08.09 02:04
Оценка: 9 (2)
А почему бы не реализовать фильтрацию ещё до того, как сообщение будет создано? Т.е. просто не пускать те сообщения, в теле которых отсутствует строчка с з/п (при этом, разумеется, повесив соответствующее сообщение на странице создания сообщений). Вариантов-то не много обрабатывать придётся. Во-первых, з/п всегда тут указывается либо в рублях либо в евро либо в долларах, реже в вебманях или Яндекс-Деньгах. Итого, можно регэкспами проверять наличие соответствующих подстрок. Ниже приведён код функции, которая демонстрирует поиск подстроки с указанием з/п, функция возвращает true/false соответственно, при этом, если нужно, значение группы "G" в случае успеха будет содержать размер оплаты и описание валюты (без лишнего мусора, ну в базу там сохранить, мало ли...). Сильно не пинять, писал на коленке, если надо будет — допилю до кондиции, но в принципе оно уже работает, чуток тестов внизу, вывод там же.

Исходник:

    class Program
    {
        static string m_RegExp =
            @"(^|[\s:]+)(?<G>(от)?\s?(([1-9]+[0-9]*\s*(-|до))?\s*[1-9]+" +
            @"[0-9]*\s*((т(ыс)?(\.?\s*))?р(уб)?\.?|рубл(я|ей|иков)|евр(о" +
            @"|ов|иков)|долл(\.?|аров)|RUR|USD|EUR|WM\w))|((от)?\s?([$€]" +
            @"\s?[1-9]+[0-9]*|[1-9]+[0-9]*\s?[$€])\s*((-|до)\s*([$€]\s?" +
            @"[1-9]+[0-9]*|[1-9]+[0-9]*\s?[$€]))?))(\W+|\z)";

        static bool IsMatches (string MsgBody)
        {
            Group group = null;
            MatchCollection matches = Regex.Matches (
                MsgBody,
                m_RegExp,
                RegexOptions.IgnoreCase);

            foreach (Match match in matches)
            {
                group = match.Groups ["G"];
                if (group.Success)
                {
                    Console.WriteLine (group.Value);
                    return true;
                }
            }

            return false;
        }

        static void Main ()
        {
            string[] msgs = {
                "Бюджет 4000-6000 рублей",
                "з/п: 5000 евриков",
                "з/п: 1200 - 1500 долл./час",
                "з/п: € 345-400",
                "з/п: 10 - 12 wmz/неделя",
                "80 тыс. р.\r\n",
                "Оклад (обсуждается индивидуально, 60-90 тыс. руб.)",
                "от 60до75 тыс. руб./net, возможно выше",
                "с 50тр. в месяц",
                "порядка 2200$-2500$",

                "Бюджет4000-6000 рублей",
                "з/п:5000-q10000 евриков",
                "з/п: 1200-1500 дол./час",
                "з/п: € сумма 345-400",
                "з/п: 10 - 12qwmz",
                "80 бтр",
                "Оклад (обсуждается индивидуально, 60-90 превед тыс. руб.)",
                "6O до N тыс. руб./net, невозможно выше",
                "с50тр. в месяц",
                "порядка 2200-2500$"};

            for (int i = 0; i < msgs.Length; i ++)
            {
                if (! IsMatches (msgs [i]))
                {
                    Console.WriteLine ("Message {0}: no match.", i + 1);
                }
            }
        }


Вывод (10 подходящих текстов и 10 содержащих ошибку):

4000-6000 рублей
5000 евриков
1200 - 1500 долл.
? 345
10 - 12 wmz
80 тыс. р.
60-90 тыс. руб.
от 60до75 тыс. руб.
50тр.
2200$-2500$

Message 11: no match!
Message 12: no match!
Message 13: no match!
Message 14: no match!
Message 15: no match!
Message 16: no match!
Message 17: no match!
Message 18: no match!
Message 19: no match!
Message 20: no match!
JID: x64j@jabber.ru
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.