我有一个看起来像这样的字符串:
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)
-look
或stuff
-
(?=[^][]*])
- 正向前瞻,与紧随其后的任何 0+ 字符([
除外)相匹配和]
然后是]
.
关于c# - 正则表达式 (.NET) 用于查找其他两个模式之间的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61666837/