我需要从文件中提取一系列有意义的值。我需要匹配的值的基本模式如下:
"indicator\..+?"\[true\]
不幸的是,在这些地方,这是跨越相当多的内容以获得真正的匹配,而懒惰的量词(?)并不像我想的那样懒惰。
如何修改上述内容,使其超出以下范围:
“indicator.value here”[false],“其他内容”,“更多其他内容 内容“,”指标与此匹配不匹配,因为完全停止缺少“[true],”指示符。这是 我希望匹配的值“[true]
仅返回此值:“indicator.this是我想要匹配的值”[true]
目前,我的上述正则表达式返回了整个字符串。
答案 0 :(得分:1)
假设逗号是分隔符 - 只需避免匹配它们:
@"""indicator\.[^,]+?""\[true\]"
答案 1 :(得分:0)
尝试使用"indicator\.(.*)?"\[true\]
,看看是否有帮助。我认为懒惰仅适用于*
运算符。我依稀记得几年前有这个问题。
答案 2 :(得分:0)
您可以通过丢弃您不想要的模式来利用丢弃技术。所以,你可以这样:
"indicator\..+?"\[false\]|"indicator\.(.+?)"\[true\]
Discard this pattern --^ Capture this --^
<强> Working demo
匹配信息
MATCH 1
1. [150-182] `this is the value I want matched`