如何找到一个字符串以.
开头,或者.
是否包含前一个/
。
所以.
或/.
我试过了:
^[^\.].*$
但这无法抓住以/
答案 0 :(得分:1)
怎么样:
^/?\\..*$
这匹配一个字符串开头的可选斜杠和一个点。
根据评论,我想你想匹配:
/?\\.[^/.]+$
这匹配一个由点组成的可选斜杠,然后在字符串的末尾匹配一个或多个不是斜杠或点的字符。
答案 1 :(得分:0)
^\.
或^[.]
将匹配一个前导点。 ^[/][.]
也会匹配起始/.
答案 2 :(得分: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-path/.some-file
完全匹配:/path/path/.file
完全匹配:/path/.file
完全匹配:/asfas/.d
完全匹配:/path/.file
答案 3 :(得分:0)
你可以尝试这个^[\/|\.].?
,但最好发布你想要找到的样本和样本。
修改
这应该^[\/|\.]+
答案 4 :(得分: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(".");