正则表达式:用点(.)匹配字符串?

问题描述 投票:0回答:7
我是一个十足的 Reg-exp 菜鸟,所以请耐心等待。尝试用谷歌搜索,但还没有找到。

编写以点开头的正则表达式匹配文件的适当方法是什么,例如

.buildpath

.htaccess

regex
7个回答
24
投票
在大多数正则表达式语言中,

^\.

^[.]
将匹配前导点。


8
投票

^

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

^\.

同样,

$

将匹配字符串的结尾。


2
投票
您可能需要将

\

 替换为相应的语言转义字符。但是,在 Powershell 下,我使用的正则表达式是:
^(\.)+\/


测试用例:

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

有效,同时

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

没有。

当然,您可能会问,这里发生了什么?

(

\\.

) 搜索文字 
.
 后跟 
+
,它与前一个字符至少匹配一次或多次。 

最后,

\\\/

 确保它符合 Window 文件路径。


1
投票
这有点取决于您使用的正则表达式库,但您可以这样做:

^\.\w+

^

 将匹配锚定到字符串的开头,
\.
 匹配文字句点(因为正则表达式中未转义的 
.
 通常匹配任何字符),
\w+
 匹配 1 个或多个“单词” " 字符(字母数字加 
_
)。

有关 Perl 样式正则表达式及其语法的更多信息,请参阅

perlre 文档。


1
投票
这取决于文件名中哪些字符是合法的,这取决于操作系统和文件系统。

例如,在 Windows 中:

^\.[^<>:"/\\\|\?\*\x00-\x1f]+$



上面的表达意思是:

    匹配以文字字符开头的字符串
  • .
    
    
  • 后跟
  • 至少一个字符,该字符不是其中之一(后面是整类无效字符)
我使用

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


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

^\\..*

^ 表示正则表达式从字符串开头开始匹配

\.意味着它将以字符串文字“.”开头
.* 表示点后跟 0 个或多个字符


0
投票
如果您使用的是 javascript,则在这种情况下可能不需要正则表达式。您可以只使用

startsWith() 方法:

if ('.buildpath'.startsWith('.')) { console.log('String starts with a dot'); }
    
© www.soinside.com 2019 - 2024. All rights reserved.