gpt4 book ai didi

正则表达式:如何获取字符串中组的所有匹配项

转载 作者:行者123 更新时间:2023-12-01 13:26:59 25 4
gpt4 key购买 nike

我有以下正则表达式

.*context\.Database\.SqlQuery<[A-Za-z]+>\("(?<sqlStatement>.*?[^\\])"\)

我有以下字符串

context.Database.SqlQuery<string>("select [Name] from [DomainModel] where UniqueId = 'someGuid'").Single();context.Database.SqlQuery<string>("select [Description] from [DomainModel] where UniqueId = 'someGuid'").Single();

我需要匹配所有出现的 context.Database.SqlQuery<string>("")并提取这些括号之间的字符串。当我像这样拆分字符串来测试它时:

context.Database.SqlQuery<string>("select [Name] from [DomainModel] where UniqueId = 'someGuid'").Single();
context.Database.SqlQuery<string>("select [Description] from [DomainModel] where UniqueId = 'someGuid'").Single();

它工作正常。我需要让它在前面的场景中工作,匹配的输出应该是这样的

第一场比赛

select [Name] from [DomainModel] where UniqueId = 'someGuid'

第二场比赛

select [Description] from [DomainModel] where UniqueId = 'someGuid'

这里是 regexr为此。

最佳答案

您的问题是一开始的 .* 。由于它可以匹配所有内容,因此最终会选择除最后一个之外的所有匹配项。

如果你只是放下它,你的模式可以拾取每一个。

context\.Database\.SqlQuery<[A-Za-z]+>\("(?<sqlStatement>.*?[^\\])"\)

关于正则表达式:如何获取字符串中组的所有匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48025189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com