Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 完整Linux文件路径的正则表达式_Python_Regex_Linux - Fatal编程技术网

Python 完整Linux文件路径的正则表达式

Python 完整Linux文件路径的正则表达式,python,regex,linux,Python,Regex,Linux,我正在尝试创建一个正则表达式来查找文本中的Linux文件路径,但是regex对我来说是非常新的。我有下面的代码片段,它将标识下面文件结构的开头 .*(/bin/|/home/).* 完成正则表达式以获取“/bin/”或“/home/”之后可能的子目录和文件的最佳方法是什么 感谢您的帮助 尽管您的正则表达式在技术上确实选择了所有子目录和文件,但请尝试以下正则表达式: .*(/bin/|/home/)(\w+(?:\.\w+)+|(\w+/))+ 每个文件夹的文件将存储在不同的组中 工作原理

我正在尝试创建一个正则表达式来查找文本中的Linux文件路径,但是regex对我来说是非常新的。我有下面的代码片段,它将标识下面文件结构的开头

.*(/bin/|/home/).*
完成正则表达式以获取“/bin/”或“/home/”之后可能的子目录和文件的最佳方法是什么


感谢您的帮助

尽管您的正则表达式在技术上确实选择了所有子目录和文件,但请尝试以下正则表达式:

.*(/bin/|/home/)(\w+(?:\.\w+)+|(\w+/))+
每个文件夹的文件将存储在不同的组中


工作原理:

.*(/bin/|/home/)          # Select /bin/ or /home/
(                         # Capture each sub-directory or file
   \w+(?:\.\w+)+              # File name (with extension(s))
   |                          # OR
   (\w+/)                     # Final Folder Name
)+                        # Capture each one or more times

由于路径可以包含空格,您是希望处理这种情况,还是只支持不包含空格的路径的情况?诚然,在linux中空格有点罕见,但它们是完全有效的。此外,路径可以以“.”“…”开头。当然,路径可以以任何东西开头(例如:“foo/bar”、“$HOME/.virtualenvs”等等)。您是否关心所有这些情况,或者只关心以“/”开头且没有空格的路径?理想情况下,我希望正则表达式处理潜在的空格。我只关心以“/”和“~/”开头的路径.我想最初我可以在正则表达式(根文件系统中的任何其他文件夹)中使用(/bin/|/home/|/sbin |/etc |/root |/lib |/dev |/tmp |/boot |/mnt/proc |/usr |/var)来执行此操作,但不确定这是否是最好的方法?