VsCode:对“任何东西”(“.*?”)的非贪婪搜索确实提供了最短的匹配[重复]

问题描述 投票:0回答:1

我有文字:

>>>Text<<<

如果我像这样搜索

>(.*?)<
我会得到以下匹配:
>>>Text<
。我怎样才能得到
>Text<

进一步的信息是解释为什么这个问题与正则表达式在第一次匹配时停止

不同

我已经使用了

.*?
。由于某种原因,这不适用于 vscode。我想要 vscode 正则表达式的解决方案。

regex visual-studio-code search
1个回答
-1
投票

使用

>[^<>]*<
(Wiktor Stribiżew)

可以工作,但不通用——如果符号(

>
<
)更改为其他内容,则需要更改
[^<>]*

.*?
“没有按预期工作”——只是因为你期待错误的事情。 .*?意思是“从左边开始,尽可能少地匹配到右边”。这并不意味着“在两个方向上尽可能少地匹配”。

我明白大家的意思,正则表达式匹配第一个

>
,并且不检查下一个字符是否也是
>
。这似乎不太好,因为我想获得尽可能短的匹配(非贪婪)和.*?是唯一的工具。这似乎是一个普遍问题/功能...

© www.soinside.com 2019 - 2024. All rights reserved.