LINUX.ORG.RU

расширение / расслабление regexp

 regexp manipulation


0

2

Господа,

Возник интересный, скорее теоретический и не привязанный к конкретному языку (но весьма животрепещущий с практической точки зрения) вопрос. Предположим имеется regexp X, можно ли из него получить regexp Y который будет матчится на всех значениях где матчится X, но если подсунуть только первый символ аргумента? Проще наверное будет объяснить на конкретных примерах:

  • ^A должно превратиться в ^A
  • ^AB должно превратиться в ^A
  • ^ABC$ должно превратиться в ^A
  • ^[ABC]DEF должно превратиться в ^[ABC]
  • [ABC] должно превратиться в ^. или .*

И так далее. В принципе домен того с чем матчат ограничен [0-9A-Z]{1,4}, но полный перебор не устраивает. Есть мысли?

ПыСы. Последний пример - совсем теоретический. Волнуют только regexps начинающиеся с ‘^’. Я даже готов обсудить любые другие ограничения которые можно наложить. Но должно легко программно проверяться.

★★★★★

Последнее исправление: bugfixer (всего исправлений: 4)

Я хотел поблагодарить всех отозвавшихся - пища к размышлениям получена, что делать дальше - тоже понятно. Тему можно закрывать (хотя я её походу нечаянно закрыл уже - засыпая видимо на «кнопарь» нажал, только сейчас заметил). Спасибо! Было познавательно, во всех смыслах.

bugfixer ★★★★★
() автор топика