返回
正则表达式教程:匹配Linux“隐藏文件”路径
正则表达式
2024-02-28 15:49:17
一、正则解释
给定的正则表达式 /^\/(?:[^/]+\/)*\.[^/]*/
旨在匹配以下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)