Regex 正则表达式走得太远了,需要限制它

Regex 正则表达式走得太远了,需要限制它,regex,Regex,我有以下数据集: C:\folder1\log.txt C:\folder1\folder2\log.txt C:\folder1\folder2\folder3\log.txt 我正在尝试使用regex来匹配log.txt文件,这些文件可能会在列表中以不同的深度出现(文件夹,这些文件夹会有不同的名称) 因此,假设我想匹配“两个文件夹深度”的所有文件log.txt,我尝试下面的正则表达式,但它对我不起作用 (.*\\){0,2}log\.txt 它不是特别有效,因为它匹配每一行,而不仅仅是“

我有以下数据集:

C:\folder1\log.txt
C:\folder1\folder2\log.txt
C:\folder1\folder2\folder3\log.txt
我正在尝试使用regex来匹配log.txt文件,这些文件可能会在列表中以不同的深度出现(文件夹,这些文件夹会有不同的名称)

因此,假设我想匹配“两个文件夹深度”的所有文件log.txt,我尝试下面的正则表达式,但它对我不起作用

(.*\\){0,2}log\.txt
它不是特别有效,因为它匹配每一行,而不仅仅是“两个文件夹深”的行


我如何才能将其限制为按预期工作?我缺少什么?

使用负数字符集而不是
,这样您可以匹配除反斜杠以外的任何字符,并确保将模式定位到字符串的开头:

^([^\\]*\\){0,2}log\.txt

谢谢您的精彩表演!在您的正则表达式中,如果我将数字更改为0,4(例如),它现在将再次捕获所有行。我的目标是,当我改变这个数字时,它将与相应的深度完全匹配。你的想法是什么?如果你想匹配深度只有2(或4)的线,或者其他什么,那么使用那种方法,
{0,2}
{0,4}
,或者你想要的任何方法。如果你想匹配那些深度只有某个数字的行,那么就把这个数字放进去,例如
{3}
绝对正确!谢谢你的澄清。我对regex有些陌生,我正在研究它。