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

时间:2019-05-18 00:42:41

标签: regex

我有以下数据集:

C:\folder1\log.txt
C:\folder1\folder2\log.txt
C:\folder1\folder2\folder3\log.txt

我正在尝试使用正则表达式来匹配log.txt文件,该文件可能出现在列表中的多个深度级别(文件夹,而文件夹又具有不同的名称)。

因此,假设我要匹配“两层深度”的所有文件log.txt,我尝试使用以下正则表达式,但对我而言不起作用。

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

它不能特别工作,因为它匹配每一行,而不仅仅是匹配“两层深度”的那一行。

如何限制它按预期工作?我想念什么?

1 个答案:

答案 0 :(得分:1)

使用负字符集代替.,以便您可以匹配除反斜杠之外的任何字符,并确保将模式锚定到字符串的开头:

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

https://regex101.com/r/Q9JBcl/1