У меня есть база данных с определенными правилами, которые мне нужно применить к группе строк, это выражения, которые могут встречаться в строках. Они выражаются как
(word1 AND word2) OR (word3)
Я не могу жестко закодировать их (потому что они могут быть изменены в базе данных), поэтому я подумал о программном преобразовании этих выражений в шаблоны Regex.
Кто-нибудь уже выполнял такую задачу или имеет представление о том, как это сделать лучше всего? Я не совсем уверен в том, как работать с более сложными выражениями, как их разбирать и так далее.
Изменить: я использую С# в VisualStudio/.NET.
Данные в основном представляют собой пути к каталогам, клиент хочет организовать свои документы, поэтому строка, которая у меня есть, представляет собой пути, выражения в БД могут выглядеть так:
(office OR headquarter) AND (official OR confidential)
Поэтому, если путь к каталогу файла содержит офисный и конфиденциальный, он должен совпадать.
Надеюсь, это прояснит ситуацию.
РЕДАКТИРОВАТЬ2:
Вот несколько фиктивных примеров:
Пути могут выглядеть так:
c:\documents\official\johnmeyer\court\out\letter.doc
c:\documents\internal\appointments\court\in\september.doc
c:\documents\official\stevemiller\meeting\in\letter.doc
И такие выражения:
(meyer or miller) AND (court OR jail)
Таким образом, это выражение будет соответствовать 1-му пути/файлу, но не 2-му и 3-му.