2014-10-16 1 views
0

Я хочу извлечь подстроку из строки, используя регулярное выражение ie. следующий список ввода/вывода показывает, что я действительно хочу. Мне нужно извлечь условия фильтра фильтра из строки. Здесь слово [отдел] является constant.so, что вид регулярного выражения полезно извлечь строку подменю в этом сценарииКак я могу извлечь подстроку из строки, используя регулярное выражение в .NET.

Input------------------------------------------------Output 

    Some conditions And [dept]=IT      [dept]=IT 
    Some conditions And [dept]=IT Or [dept]=Account  [dept]=IT Or [dept]=Account 
    Some conditions And [dept] IN ('IT','Account')  [dept] IN ('IT','Account') 

    [dept]=IT And some conditions      [dept]=IT 
    [dept]=IT Or [dept]=Account And some conditions  [dept]=IT Or [dept]=Account 
    [dept] IN ('IT','Account') And some conditions  [dept] IN ('IT','Account') 
+0

Есть только эти строки, откуда вы хотите получать свой O/P или могут быть и другие комбинации, а также похожие на ваши входы – jadavparesh06

+0

да, но значения универмаги могут изменяться. это возможные комбинации, структура строки должна быть такой: –

+0

Кажется, что вы хотите все после И в 1-м 3 случаях и все до И в последних3 случаях, это то, что вы хотите? – jadavparesh06

ответ

2

Это может быть близко к тому, что вы после

(\[dept\]=\w+)((Or)|(And))?|(\[dept\] IN \(.+?\)) 

Он соответствует вашему вводу образца, как показано ниже, сгруппирован в().

([dept]=IT) 
([dept]=IT Or) ([dept]=Account) 
([dept] IN ('IT','Account')) 

В вашем сценарии вы можете присоединиться к группам в каждой строке, то есть., Присоединиться к ([dept]=IT Or) ([dept]=Account)

Но если, как предложено в комментариях вы действительно разборе SQL, есть SQL парсеров, которые дадут вам точные доступ к вашему запросу выражение WHERE.

+0

да. это то, что мне нужно –