如何使用C#正则表达式解析以下内容

时间:2014-09-16 16:03:30

标签: c# regex

我有这样的文字:"((FIELD1_NAME like 'Product%') And (Instr(FIELD1_NAME, 'Product_typ') = 1))";

我想从字符串的FIELD1_NAME部分解析Product_typInstr

这不起作用:@"Instr((?<column>[A-Z0-9_]+), '(?<value>([^']|(''))+)'"

2 个答案:

答案 0 :(得分:2)

您需要在(之后转义第一个Instr,并将value组内的群组转为非捕获群组,

Instr\((?<column>[A-Z0-9_]+),\s*'(?<value>(?:[^']|(''))+)'

DEMO

答案 1 :(得分:0)

这个正则表达式在惰性量词上使用dot-all来获取var 主要是修剪,因为你没有说明它的验证。

 # @"(?s)Instr\s*\(\s*(?<feild>.*?)\s*,\s*'\s*(?<prodtype>.*?)\s*'\s*\)"

 (?s)
 Instr
 \s* 
 \(
 \s* 
 (?<feild> .*? )               #_(1)         
 \s* , \s* 
 '
 \s* 
 (?<prodtype> .*? )            #_(2)         
 \s* 
 '
 \s* 
 \)