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