我有这样的文字:"((FIELD1_NAME like 'Product%') And (Instr(FIELD1_NAME, 'Product_typ') = 1))";
我想从字符串的FIELD1_NAME
部分解析Product_typ
和Instr
。
这不起作用:@"Instr((?<column>[A-Z0-9_]+), '(?<value>([^']|(''))+)'"
答案 0 :(得分:2)
您需要在(
之后转义第一个Instr
,并将value
组内的群组转为非捕获群组,
Instr\((?<column>[A-Z0-9_]+),\s*'(?<value>(?:[^']|(''))+)'
答案 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*
\)