gpt4 book ai didi

C# RegEx - 仅获取字符串中的第一个匹配项

转载 作者:太空狗 更新时间:2023-10-30 00:02:53 27 4
gpt4 key购买 nike

我有一个看起来像这样的输入字符串:

level=<device[195].level>&name=<device[195].name>

我想创建一个 RegEx 来解析每个 <device>标签,例如,我希望从我的输入字符串中匹配两个项目:<device[195].level><device[195].name> .

到目前为止,我对这种模式和代码还算幸运,但它总能找到两个设备标签作为一个匹配项:

var pattern = "<device\\[[0-9]*\\]\\.\\S*>";
Regex rgx = new Regex(pattern);
var matches = rgx.Matches(httpData);

结果是 matches将包含一个值为 <device[195].level>&name=<device[195].name> 的结果

我猜一定有一种方法可以“终止”该模式,但我不确定它是什么。

最佳答案

使用non-greedy quantifiers :

<device\[\d+\]\.\S+?>

此外,使用逐字字符串来转义正则表达式,这使它们更具可读性:

var pattern = @"<device\[\d+\]\.\S+?>";

作为旁注,我想在你的情况下使用 \w 而不是 \S 会更符合你的意图,但我离开了 \S 因为我不知道。

关于C# RegEx - 仅获取字符串中的第一个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24897850/

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