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

rekjcdws  于 2023-05-30  发布在  其他
关注(0)|答案(7)|浏览(231)

我是一个完整的Reg-exp noob,所以请忍受我。我试着google了一下,但还没有找到。
编写正则表达式匹配以点开头的文件(如.buildpath.htaccess)的合适方法是什么?
非常感谢!

knpiaxh1

knpiaxh11#

在大多数正则表达式语言中,^\.^[.]将匹配前导点。

wlwcrazw

wlwcrazw2#

^匹配大多数语言中字符串的开头。这将匹配前导.。你需要添加你的文件名表达式。

^\.

类似地,$将匹配字符串的结尾。

nkcskrwz

nkcskrwz3#

您可能需要用\替换相应的语言转义字符。但是,在PowerShell下,我使用的Regex是:^(\.)+\/
测试用例:

"../NameOfFile.txt" -match '^(\\.)+\\\/'

工作,而

"_./NameOfFile.txt" -match '^(\\.)+\\\/'

没有。
当然,你可能会问,这里发生了什么?
\\.)搜索文字.,后跟+,它至少匹配前一个字符一次或多次。
最后,\\\/确保它符合Window文件路径。

sbtkgmzw

sbtkgmzw4#

这在一定程度上取决于你使用的正则表达式库,但你可以这样做:

^\.\w+

^将匹配锚定到字符串的开头,\.匹配文字句点(因为正则表达式中的非转义.通常匹配任何字符),\w+匹配1个或多个“单词”字符(字母数字加_)。
有关Perl风格的正则表达式及其语法的更多信息,请参阅perlre文档。

4dc9hkyq

4dc9hkyq5#

它取决于文件名中哪些字符是法律的的,这取决于操作系统和文件系统。
例如,在Windows中,这将是:
^\.[^<>:"/\\\|\?\*\x00-\x1f]+$
上述表达式的意思是:

  • 匹配以文字字符.开头的字符串
  • 后跟 * 至少一个 * 字符,该字符不是以下字符之一(后面跟着整个类的无效字符)

我使用this作为文件名中不允许使用哪些字符的参考。

aor9mmx1

aor9mmx16#

要匹配java中以点开头的字符串,您必须编写一个简单的表达式

^\\..*

^表示正则表达式从字符串的开头开始匹配
.表示它将以字符串文字“”开头。
.* 表示点后面将跟0个或多个字符

zpgglvta

zpgglvta7#

如果你使用的是javascript,在这种情况下可能不需要正则表达式。你可以使用startsWith()方法:

if ('.buildpath'.startsWith('.')) {
  console.log('String starts with a dot');
}

相关问题