正则表达式:匹配以点(。)开头的字符串?

时间:2011-01-09 18:20:55

标签: regex

我是一个完整的Reg-exp菜鸟,所以请耐心等待。试图谷歌这个,但还没有找到它。

编写正则表达式匹配以点开头的文件(例如.buildpath.htaccess)的适当方法是什么?

非常感谢!

6 个答案:

答案 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个或更多字符