gpt4 book ai didi

regex - 使用正则表达式解析括号内的内容

转载 作者:行者123 更新时间:2023-12-01 08:30:01 24 4
gpt4 key购买 nike

我敢肯定这很简单,如果我的个人资料中有这个问题,我可能会感到尴尬,但我似乎无法让这个 Regex 正确。

我试图从以下字符串的最后一组中提取数字:

Properties[1].Securitymeasures[14].AdditionalSecurityType

所以我想要一个返回 14

的正则表达式

我想出的正则表达式是:

\[(\d)+\]

但是 - 匹配返回“[14]” - 包括方括号,我不明白为什么。我用括号将\d 括起来,这应该意味着这是我想要捕获的数据。

最佳答案

好吧,你的正则表达式实际上是匹配的

  1. 左括号
  2. 一个或多个连续数字
  3. 右括号

所以它返回括号的事实是完全正确的。如果您调试以下内容

Regex.Match("Properties[1].Securitymeasures[14].AdditionalSecurityType",
@"\[(\d)+\]")
.Groups[1]
.Value // equals '1'

您会看到\d 被捕获为一个组(毕竟您将其放在括号中)。

您要做的是使用“Positive Lookbehind”来指定您要查找括号后的一位或多位数字。

(?<=\[)\d+

说的是

  1. 匹配一位或多位连续数字
  2. 紧跟在左括号之后

您可以用 Positive Lookahead 将其括起来,但是如果您正在解析整数索引,那么您总是可以期望括号内只有数字并且可以跳过 lookahead。

关于regex - 使用正则表达式解析括号内的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8577753/

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