gpt4 book ai didi

.net - 正则表达式 正则表达式 匹配

转载 作者:行者123 更新时间:2023-12-03 07:49:34 24 4
gpt4 key购买 nike

我在为我的字符串构建正确的正则表达式时遇到问题。我想要做的是从我的字符串中获取所有实体;它们以 ' 开头和结尾。这些实体可以通过一些数字和前面的#来识别。但是,不以 ' 开头或结尾的实体(在本例中为以 # 开头的电话号码)根本不应该匹配。

我希望有人可以帮助我,或者至少告诉我,我想做的事情在一个正则表达式中是不可能的。谢谢:)

字符串:

'Blaa lablalbl balbla balb lbal '#39'blaaaaaaaa'#39' ('#39#226#8218#172#39') blaaaaaaaa #7478347878347834 blaaaa blaaaa'

正则表达式:

'[#[0-9]+]*'

想要的比赛:

  • '#39'
  • '#39'
  • '#39'
  • '#226'
  • '#8218'
  • '#172'
  • '#39'

找到匹配项:

  • '#39'
  • '#39'
  • '#39#226#8218#172#39' <- 需要拆分(如果可能在同一个正则表达式中)

另一个正则表达式:

#[0-9]+

找到匹配项:

  • '#39'
  • '#39'
  • '#39'
  • '#226'
  • '#8218'
  • '#172'
  • '#39'
  • '#7478347878347834' <- 不应该在这里:(

语言:C# .NET (4.0)

最佳答案

您无法在一个正则表达式中完成此操作,您需要两个:

首先获取单引号之间的所有匹配项:

'[\d#]+'

然后在所有这些匹配上,执行以下操作:

#\d+

所以你最终会得到类似的结果(在 C# 中):

foreach(var m in Regex.Matches(inputString, @"'[\d#]+'"))
{
foreach(var m2 in Regex.Matches(m.Value, @"#\d+"))
{
yield return m2.Value;
}
}

关于.net - 正则表达式 正则表达式 匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3709091/

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