阻止regex跨越不需要的内容
本文关键字:不需要 regex 跨越 阻止 | 更新日期: 2023-09-27 18:00:02
我需要从文件中提取一系列有意义的值。我需要匹配的值的基本模式如下:
"indicator'..+?"'[true']
不幸的是,在某些地方,为了获得真正的匹配,这需要跨越相当多的内容,而惰性量词(?)并不像我希望的那样惰性。
我如何修改以上内容,以便从以下内容中删除:
"indicator.value here"[false],"其他内容","更多其他content","指示符与此指示符不匹配,因为缺少句号"[true],"指示符。这是我想要匹配的值"[true]
只返回以下值:"indicator.this is the value I want match"[true]
目前,我上面的regex正在返回整个字符串。
假设逗号是分隔符-只需避免它们之间的匹配:
@"""indicator'.[^,]+?""'[true']"
尝试使用"indicator'.(.*)?"'[true']
,看看这是否有帮助。我认为懒惰只适用于*
运算符。我隐约记得几年前有过这个问题。
您可以通过丢弃不想要的模式来利用丢弃技术。所以,你可以有这样的东西:
"indicator'..+?"'[false']|"indicator'.(.+?)"'[true']
Discard this pattern --^ Capture this --^
工作演示
匹配信息
MATCH 1
1. [150-182] `this is the value I want matched`