c# - 正则表达式 (.NET) 在其他两个模式之间查找模式
问题描述
我有一个看起来像这样的字符串:
DOG[i want to look for specific hits of stuff here]
我想匹配在开头DOG[
和结尾之间出现的任何单词“look”或“stuff”]
我知道我可以写一个正则表达式(?<=DOG\[).*?(?=\])
来查找开头和结尾位之间的所有文本,但我只想查找这些开头和结尾之间的特定单词。
我怎样才能做到这一点?
解决方案
由于在 .NET 正则表达式中,您可以在后视中使用匹配未知长度字符串的模式,您可以使用
(?<=DOG\[[^][]*?)(?:look|stuff)(?=[^][]*])
请参阅正则表达式演示。
这里,
(?<=DOG\[[^][]*?)
- 一个积极的后视,匹配紧接在前面的位置和除and之外的DOG[
任何 0+ 字符[
]
(?:look|stuff)
-look
或stuff
(?=[^][]*])
- 与紧随其后的任何 0+ 字符(除了[
and]
和然后是]
.
推荐阅读
- python - 如何在 Python 中实现良好的移动平均线
- dictionary - 字符串内的presto lambda函数变量
- c# - 如何在 Xunit 中为集合编写 Assert 语句?
- csv - 将大 csv 文件部分导入 Neo4j
- sql - 在实体框架中使用事务的问题
- javascript - 通过单击图像在一个容器中显示/隐藏不同的信息:隐藏前显示信息
- regex - Sed:如何封闭匹配的行?
- php - 使用未定义的常量 STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
- algorithm - 用于子集和问题的多项式\伪多项式算法,具有浮点数和目标和或与目标和最接近的和
- c++ - 如果我将变量重新定义为 auto 并且推导的类型相同,它是否格式正确?