Regex 对正则表达式感到困惑吗

Regex 对正则表达式感到困惑吗,regex,reluctant-quantifiers,Regex,Reluctant Quantifiers,我想在表达式${foo}和${bar}中匹配以“${”开头,以“}”结尾的表达式 正则表达式*\$\{.+\}.*当然匹配整个表达式 我的理解是,更改为不情愿的量词可以解决问题,但我发现*\$\{.+?\}.*也匹配整个表达式 我遗漏了什么?我将首先删除表达式开头和结尾的*——这可能是匹配所有内容的地方。如果你尝试这个,它会起作用吗 \$\{.+\} 首先,我要删除表达式开头和结尾的*——这可能是匹配所有内容的原因。如果你尝试这个,它会起作用吗 \$\{.+\} 根据1800信息的建议,我将

我想在表达式
${foo}和${bar}
中匹配以
“${”
开头,以
“}”结尾的表达式

正则表达式
*\$\{.+\}.*
当然匹配整个表达式

我的理解是,更改为不情愿的量词可以解决问题,但我发现
*\$\{.+?\}.*
也匹配整个表达式


我遗漏了什么?

我将首先删除表达式开头和结尾的
*
——这可能是匹配所有内容的地方。如果你尝试这个,它会起作用吗

\$\{.+\}

首先,我要删除表达式开头和结尾的
*
——这可能是匹配所有内容的原因。如果你尝试这个,它会起作用吗

\$\{.+\}

根据1800信息的建议,我将点改为其他内容:

\$\{[^\}]+\}

如果字符串中出现两个
${}
,则
+
将尽可能匹配
}

以及1800信息的建议,我会将点更改为其他内容:

\$\{[^\}]+\}
因为如果字符串中有两个
${}
的出现,
+
将尽可能多地匹配
}

因为“+”量词是贪婪的,所以它尽可能多地匹配,而+?,匹配刚好足够

例如,对于“${foo}something${bar}”

“+”-->match=“${foo}某物${bar}” “+?”-->match=“${foo}”和“${bar}”。您必须迭代才能获得所有匹配项

因为“+”量词是贪婪的,所以它尽可能多地匹配,而+?,匹配得刚好

例如,对于“${foo}something${bar}”

“+”-->match=“${foo}某物${bar}” “+?”-->match=“${foo}”和“${bar}”。您必须迭代才能获得所有匹配项


rememebr potenetily.*匹配空字符串,您可以在任何地方找到空字符串:)(这完全取决于正在使用的正则表达式引擎)rememebr potenetily.*匹配空字符串,您可以在任何地方找到空字符串:)(这完全取决于正在使用的正则表达式引擎)这是我以前理解的。我的困惑是为什么“+?”不尽可能地匹配。这是我以前理解的。我的困惑是为什么“+?”不尽可能匹配。