2017-05-25 77 views
-4

如何查找字符串是以.开头还是.(前面的/)。找到一个字符串中的点?

所以./.

我已经试过:

^[^\.].*$ 

但这未能捕捉到任何开始用/

+0

你有什么试过?什么是您遇到问题的精确*代码?你有什么困难?你有错误信息吗?如果是,哪一个?观察到的行为是否与预期行为不同?如果是,那么观察到的行为是什么,它与预期的行为有什么不同? –

+0

我有我的问题试图在我的问题 – panthro

+0

请粘贴您的Java代码,所以我们可以测试它。 – stomtech

回答

0

^\.^[.]将匹配一个前导点。也^[/][.]将匹配起始/.

+0

^[/] [。]似乎不起作用。 – panthro

+0

你想用什么语言?它在bash中工作 –

+0

java please – panthro

0

^[\/\.].*$将检查字符串是否以开头。/

这里是Java代码:

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

class RegexTester 
{ 
    final static String regex = "^[\\/\\.].*$"; 
    final static String[] stringsToTest = { ".file", 
              "./file", 
              "/file", 
              "/.file", 
              ".", 
              "./", 
              "/some/path", 
              "/some-path/.some-file", 
              "/path/path/.file", 
              "/path/.file", 
              "/asfas/.d", 
              "/path/.file" }; 

    final static Pattern pattern = Pattern.compile(regex); 

    public static void main(String[] args) 
    { 
     for (String text : stringsToTest) { 
      testRegex(text); 
     }  
    } 

    public static void testRegex(String testString) 
    { 
     Matcher matcher = pattern.matcher(testString); 

     while (matcher.find()) 
     { 
      System.out.println("Full match: " + matcher.group(0)); 

      for (int i = 1; i <= matcher.groupCount(); i++) 
      { 
       System.out.println("Group " + i + ": " + matcher.group(i)); 
      } 
     } 
    } 
} 

输出是:

javac RegexTester.java && java RegexTester 

全场比赛:.file
全场比赛:./file
全场比赛:/文件
完全匹配:/.file
完全匹配:。
全场比赛:./
全场比赛:/一些/路径
全场比赛:/some-path/.some-file
全场比赛:/path/path/.file
全场比赛:/路径/ .file
全场比赛:/asfas/.d
全场比赛:/path/.file

Run this java code in rextester.com

+0

似乎并不适用于/ some /路径 – panthro

+0

@panthro:它适用于[regex101.com](https://regex101.com/r/4myqSI/1)和[regexr.com](http:// regexr的.com/3g1ir)。 – stomtech

1

如何ABO ut:

^/?\\..*$ 

这匹配一个可选的斜线和一个字符串开头的点。

根据评论,我想你想匹配:

/?\\.[^/.]+$ 

这一个点fllowed然后1个或多个字符未在字符串的结尾斜线或点,一个可选的斜线相匹配。

+0

无法使用.test – panthro

+0

无法使用/some-path/.some-file – panthro

+0

感谢您浏览了您的编辑,仍然无法运行/some-path/.some-file – panthro

0

你可以试试这个^[\/|\.].?但是最好是发布一个你正在试图找到的东西和地点的样本。

编辑

这应该这样做^[\/|\.]+

+0

无法正常工作.. – panthro

+0

粘贴正在查找的文本样本。 它在此工作:https://regex101.com/ –

+0

.file或/.file或/path/.file – panthro

0

对于这个问题,你已经张贴:无需正则表达式。

String s = ...; 
s.startsWith(".") || s.startsWith("/.") 

如果你想正则表达式,因为它很酷,使用这个

String s = ...; 
boolean matches = s.matches("/?\\..*"); 

(根据您的意见),如果你想查询像最后一段中的路径

String s = ...; 
boolean matches = s.matches("(.*/)?\\..*"); // matches also path/to/.file 

如果你的文件名实际匹配,你应该更喜欢Path

Path path = Paths.get("/path/to/.file"); 
boolean isHidden = path.getFileName().toString().startsWith("."); 
+0

@panthro PHP相关问题已关闭? – steffen

相关问题