c# - 正则表达式 (.NET) 用于查找其他两个模式之间的模式

标签 c# .net regex

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

DOG[i want to look for specific hits of stuff here]

我想匹配开头 DOG[ 之间出现的任何单词“look”或“stuff”和结束]

我知道我可以写一个类似(?<=DOG\[).*?(?=\])的reg查找开头和结尾之间的所有文本,但我只想查找这些开头和结尾之间的特定单词。

我该怎么做?

最佳答案

由于在 .NET 正则表达式中,您可能会在lookbehinds中使用匹配未知长度字符串的模式,因此您可以使用

(?<=DOG\[[^][]*?)(?:look|stuff)(?=[^][]*])

请参阅regex demo .

这里,

  • (?<=DOG\[[^][]*?) - 与紧接 DOG[ 之前的位置匹配的正向后查找以及除 [ 之外的任何 0+ 个字符和]
  • (?:look|stuff) -lookstuff
  • (?=[^][]*]) - 正向前瞻,与紧随其后的任何 0+ 字符([ 除外)相匹配和]然后是 ] .

关于c# - 正则表达式 (.NET) 用于查找其他两个模式之间的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61666837/

相关文章:

c# - 设置 _NO_DEBUG_HEAP

c# - 如何以编程方式格式化 Excel 工作表中的单元格?

.net - Entity Framework 4.0 创建从其他实体派生的新实体

python - 用正则表达式匹配两个 Python 列表,并创建字典输出

regex - R:如何查找字符串中的第一个数字

regex - pcre 中的终止问题

c# - SharpShell 服务器 .dll 未签名

c# - 如何创建 Func<TSource> 到 Expression<Func<TSource,TValue>>

c# - C# 的商业 YAML 解析器

c# - 如何在我的应用程序中发送键盘按键?