Regex捕获文件名和同名文件夹

Regex捕获文件名和同名文件夹,regex,phabricator,Regex,Phabricator,我的文件夹结构如下: /repo /requirements/ base.txt something.txt requirements.txt 我需要一个正则表达式来跟踪文件是否在requirements文件夹或requirements.txt文件中 我有一个@/requirements/*@跟踪requirements文件夹中的更改,但是如何查找requirements.txt 同时,我不希望它捕获/repo/apps/myapp/requirement

我的文件夹结构如下:

/repo
   /requirements/ 
      base.txt
      something.txt
   requirements.txt
我需要一个正则表达式来跟踪文件是否在requirements文件夹或requirements.txt文件中

我有一个
@/requirements/*@
跟踪requirements文件夹中的更改,但是如何查找requirements.txt


同时,我不希望它捕获
/repo/apps/myapp/requirements/txt
您可以使用下面的正则表达式满足您的需求:

^\/repo\/requirements\/?.*?$|^\/repo\/requirements\.txt$
对上述正则表达式的解释:

^,$
-表示测试字符串的开始和结束分隔符

|
-表示替换

^\/repo\/requirements\/?*?$
-正则表达式的这一部分匹配requirements目录中的任何文件,而requirements目录又恰好位于根目录中

^\/repo\/requirements\.txt$
-regex的这一部分与requirements.txt匹配,requirements.txt位于根目录中,而不是更深


你可以在

regex的
/requirements/| requirements\.txt$
@Mandy8055中找到上述正则表达式的演示,但是我不希望
/repo/apps/myapp/requirements.txt
那么,除了我指出的例子之外,你的例子中的一切都是正确的。基本上,我只想在roor中使用/requirements/**和requirements.txt,但没有更深入的内容