正则表达式获得匹配而不匹配开始字符

时间:2015-02-11 10:22:59

标签: c# regex

我有以下正则表达式:

Regex regex = new Regex(@"@([\w\-]+)");

它的作用是在SQL查询中查找参数匹配。例如,对于以下输入

select * from some_table where fieldA = @FieldA and fieldB = @FieldB

结果将是@FieldA和@FieldB

但我真正想要的只是" FieldA"和" FieldB" - 没有@符号。这可能在正则表达式本身还是仅在代码中?

1 个答案:

答案 0 :(得分:1)

您可以使用lookbehind,以便正则表达式不会捕获匹配组中的@

Regex regex = new Regex(@"(?<=@)([\w-]+)");

此处(?<=@)是一个积极的外观,可确保您的匹配前面有@