За последние 24 часа нас посетили 16953 программиста и 1293 робота. Сейчас ищут 1463 программиста ...

Определение пересечения областей значений рег. выражений

Тема в разделе "Регулярные выражения", создана пользователем guest2013, 29 июн 2011.

  1. guest2013

    guest2013 Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    109
    Симпатии:
    0
    Ну вопрос наверное не в тему и может даже не в этот форум, но всё же рискну...

    Вот стоит задача определить, пересекаются ли два регулярных выражения. Поясню.

    Есть регулярное выражение. На каких то строках поиска оно срабатывает (находит в строке то что хотело найти), на других строках не срабатывает. В этом и заключается предназначение регулярного выражения: определить удовлетворяет ли строка данному регулярному выражению. Назовем для краткости эти строки для поиска значениями, а регулярное выражение - маской. Т.е. какие то значения удовлетворяют маске, какие то - нет. Таким образом, есть какая то область, значения которой удовлетворяют маске. Т.е. можно сказать, что маска покрывает какую то область значений.

    Так вот... Есть одна маска, которая покрывает одну область значений, и другая маска, которая покрывает другую область значений. Требуется определить пересекаются ли области значений этих двух масок. Т.е. существует ли хотя бы одно значение, которое удовлетворяет двум маскам.

    Итак... Дано: две маски. Требуется: определить пересекаются ли области значений этих двух масок.

    У кого есть какие мысли, наработки или готовые решения, то пишите. Я не жду готовых решений, тем более, что сам "язык" регулярных выражений в моей задаче отличается от стандартных. Меня интересуют общие приемы решения данной задачи.

    =)
     
  2. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Есть смещения найденных областей относительно начала строки и их длины. Дальше справитесь?
     
  3. guest2013

    guest2013 Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    109
    Симпатии:
    0
    Я наверное плохо сформулировал задачу или неправильно понял ответ...
    Самих строк нет. Есть только две маски. Требуется понять, найдется ли в природе хотя бы одна строка, которая будет отвечать требованиям этих двух масок одновременно.
     
  4. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    А... наверно проходить по одному шаблону, генерировать доступные варианты строки и отбрасывать то, что противоречит другому шаблону