如何使用正则表达式匹配到第一个(元素)?

时间:2016-02-09 23:53:09

标签: regex search replace

有:

queryBuilder.Append("openquery(SCHEMAA,'select * from SCHEMAA.SomeView') va, ");
queryBuilder.Append("openquery(SCHEMAB,'select * from SCHEMAB.ANOTHERVIEW') ve ");

我想匹配,直到第一次出现(

我试过了:

^.+\({1}

但它会突出显示直到最后一次(:

queryBuilder.Append("openquery(

我该怎么办?

1 个答案:

答案 0 :(得分:0)

+量词is greedy,这意味着.+将尽可能匹配。您可以在?之后添加.+量词,以使其变得懒惰,.+?

^.+?\(

哪会产生:

queryBuilder.Append(

但是,更好的方法是使用a negated character set[^(]来匹配除(以外的所有字符:

^[^(]+

哪会产生:

queryBuilder.Append

当然,如果您想要加入(,请改用^[^(]+\(