Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 阻止正则表达式跨越不需要的内容_C#_Regex - Fatal编程技术网

C# 阻止正则表达式跨越不需要的内容

C# 阻止正则表达式跨越不需要的内容,c#,regex,C#,Regex,我需要从文件中提取一系列有意义的值。我需要匹配的值的基本模式如下所示: "indicator\..+?"\[true\] 不幸的是,在某些地方,它跨越了相当多的内容以获得真正的匹配,而懒惰量词(?)并不像我所希望的那样懒惰 我如何修改上述内容,以避免出现以下情况: “此处的indicator.value”[false]、“其他内容”、“更多其他内容” 内容“,”指标与此指标不匹配,因为缺少句号“[真],”指标。这是 我希望匹配的值“[正确] 仅返回此值:“indicator.this is t

我需要从文件中提取一系列有意义的值。我需要匹配的值的基本模式如下所示:

"indicator\..+?"\[true\]
不幸的是,在某些地方,它跨越了相当多的内容以获得真正的匹配,而懒惰量词(?)并不像我所希望的那样懒惰

我如何修改上述内容,以避免出现以下情况:

“此处的indicator.value”[false]、“其他内容”、“更多其他内容” 内容“,”指标与此指标不匹配,因为缺少句号“[真],”指标。这是 我希望匹配的值“[正确]

仅返回此值:“indicator.this is the value I want matched”[true]


目前,我上面的正则表达式正在返回整个字符串。

尝试使用
指示符\.(.*)“\[true\]
,看看是否有帮助。我认为懒惰只适用于
*
操作符。我隐约记得几年前就有过这个问题。

假设逗号是分隔符,只需避免匹配:

@"""indicator\.[^,]+?""\[true\]"

您可以通过丢弃不想要的模式来利用丢弃技术。所以,你可以有这样的东西:

"indicator\..+?"\[false\]|"indicator\.(.+?)"\[true\]
Discard this pattern --^ Capture this --^

匹配信息

MATCH 1
1.  [150-182]   `this is the value I want matched`

即使是真的,你也错过了一个
,谢谢约翰·桑德斯,他以后会避免这样做的。