2016-08-16 4 views
1

У меня есть предложение SQL Where, которое будет выполняться в DataView, но C# DataView не принимает оператор BETWEEN. Мне нужно преобразовать любой BETWEEN оператора в строке запроса к И, например:Regex заменить оператор BETWEEN SQL с AND

До: год между 2010 и 2014

После: года> = 2010 и год < = 2014

I попробовал этот шаблон

$.+ BETWEEN .+ AND .+/ 

Но это не сработало, и ничего не заменяет до сих пор

+0

Пробовал '.Replace (" МЕЖДУ "," И ")'? –

+0

Не могли бы вы разместить свой код, в котором вам нужна помощь? – uTeisT

+0

Это строка для манипуляции с заменой регулярных выражений. Я привел пример на эту должность. –

ответ

1

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

var sql = "blah Year BETWEEN 2010 and 2014 blah"; 
var munged = Regex.Replace(sql, 
    @"\s([A-Za-z0-9_.]+)\s+BETWEEN\s+([0-9]+)\s+and\s+([0-9]+)\s", 
    " $1 >= $2 and $1 <= $3 ", RegexOptions.IgnoreCase); 

Обратите внимание, что я ограничивая обработку здесь целые числа; расширение его, чтобы справиться со струнами, намного сложнее.

+0

Спасибо, что работает. –

Смежные вопросы