我是regex的新手,我正在尝试使用它来排除点下划线文件,由OSX用户留在我的服务器上。
我到目前为止所有的一切都是:
^\._
我不确定这是否正确,这是第一次需要正确的事情。如果有人能够解释上述情况是否正确,或者情况不是这样,请解释为什么不是,哪些是正确的。
目前我正在排除tmp
和DS_Store
个文件,没有正则表达式,但我想排除._
个文件。例如,._example.txt
。
提前致谢。
答案 0 :(得分:0)
请注意,正则表达式开头的^
具有特殊含义 - 您希望在输入字符串的开头匹配。
E.g。
正则表达式:^John
将与John Doe is dead
匹配,但与Doe John is dead
不匹配,因为在之前的输入文本中,John
启动序列
但您可以在不同目的中使用^
字符来排除模式。区别在于将其作为()
或[]
括号的第一个字符。
解决您的问题:[^\._].
阐释:
[^\._]
匹配下面列表中不存在的单个字符
\.
字面匹配字符.
_
文字_
.
匹配任何字符(换行符除外)
以下是您可以用来测试常规表达的网站。 https://regex101.com/
答案 1 :(得分:-1)
根据您的输入数据,您可以在没有正则表达式的情况下执行此操作 - 检查每个文件名中是否存在字符串._
(循环),如果存在,则删除该文件。
var fileName = '._abc.blah';
if (fileName.indexOf('._') != -1) {
console.log('remove this one');
}