我是一个完整的Reg-exp菜鸟,所以请耐心等待。试图谷歌这个,但还没有找到它。
编写正则表达式匹配以点开头的文件(例如.buildpath
或.htaccess
)的适当方法是什么?
非常感谢!
答案 0 :(得分:19)
在大多数正则表达式语言中,^\.
或^[.]
都会匹配一个前导点。
答案 1 :(得分:5)
^
匹配大多数语言中字符串的开头。这将匹配前导.
。您需要将文件名表达式添加到其中。
^\.
同样,$
将匹配字符串的结尾。
答案 2 :(得分:2)
您可能需要将\
替换为相应的语言转义字符。但是,在Powershell下,我使用的正则表达式是:^(\.)+\/
测试用例:
"../NameOfFile.txt" -match '^(\\.)+\\\/'
有效,而
"_./NameOfFile.txt" -match '^(\\.)+\\\/'
没有。
当然,您可能会问,这里发生了什么?
(\\.
)搜索文字.
后跟+
,其中至少匹配前一个字符一次或多次。
最后,\\\/
确保它符合Window文件路径。
答案 3 :(得分:1)
这取决于您使用的正则表达式库,但您可以执行以下操作:
^\.\w+
^
将匹配锚定到字符串的开头,\.
匹配文字句点(因为正则表达式中未转义的.
通常匹配任何字符),{ {1}}匹配1个或多个“字”字符(字母数字加\w+
)。
有关Perl样式正则表达式及其语法的详细信息,请参阅perlre文档。
答案 4 :(得分:1)
这取决于文件名中哪些字符合法,这取决于操作系统和文件系统。
例如,在Windows中将是:
^\.[^<>:"/\\\|\?\*\x00-\x1f]+$
上述表达方式意味着:
.
我使用this作为参考,了解文件名中不允许使用哪些字符。
答案 5 :(得分:1)
要匹配java中以dot开头的字符串,您必须编写一个简单的表达式
^\\..*
^表示从字符串
的开头匹配正则表达式
\。意味着它将以字符串文字“。”开头
。*表示点后面跟0个或更多字符