返回

正则表达式教程:匹配Linux“隐藏文件”路径

正则表达式

一、正则解释

给定的正则表达式 /^\/(?:[^/]+\/)*\.[^/]*/ 旨在匹配以下Linux“隐藏文件”路径模式:

  • 以斜杠 (/) 开头
  • 紧跟一个或多个非斜杠字符,然后是一个斜杠
  • 重复上述模式零次或多次
  • 以一个句点 (.) 和一个或多个非斜杠字符结尾

二、使用场景

此正则表达式可用于各种场景,包括:

  • 从目录列表中过滤“隐藏文件”
  • 搜索包含“隐藏文件”的特定目录
  • 检查给定的路径是否指向“隐藏文件”

三、代码示例

JavaScript

const regex = /^\/(?:[^/]+\/)*\.[^/]*/;
const testString = '/usr/ad/.dd,/root/.gitignore,/.gitignore';
const matches = testString.split(',').filter(path => regex.test(path));
console.log(matches);

Java

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class HiddenFileMatcher {

    public static void main(String[] args) {
        String regex = "^/(?:[^/]+/)*\\.[^/]*";
        String testString = "/usr/ad/.dd,/root/.gitignore,/.gitignore";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(testString);
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

PHP

<?php
$regex = '/^\/(?:[^/]+\/)*\.[^/]*/';
$testString = '/usr/ad/.dd,/root/.gitignore,/.gitignore';
preg_match_all($regex, $testString, $matches);
print_r($matches[0]);

Python

import re

regex = r"^/(?:[^/]+\/)*\.[^/]*"
testString = '/usr/ad/.dd,/root/.gitignore,/.gitignore'
matches = re.findall(regex, testString)
print(matches)