2011-10-31 140 views
0

我想在java上实现模式'*'文本匹配。什么是最简单的方法来做到这一点? Pattern.java是最好的解决方案吗?模式搜索

+1

请向我们展示一些示例,说明您正在寻找的内容*。 – NPE

+0

匹配什么?字符串?文件名?语法是什么?正则表达式? glob的? – Will

+0

我想要匹配字符串 – Martin

回答

4

看看正则表达式包java.util.regex。你找到一个好的起点here

0

U可以使用String ClassindexOf()方法...
看看这段代码.... Pattern match

+1

如果您没有写出代码,那么您应该从 – Will

+0

那里得到它,谢谢。 –

0

没有一个内置的glob-匹配的Java,但是你可以很容易地使用convert a glob to a regex and一个正则表达式库。

+1

Java 7确实有一个内置的glob匹配器。请参阅[FileSystem.getPathMatcher](http://download.oracle.com/javase/7/docs/api/java/nio/file/FileSystem.html#getPathMatcher(java.lang.String)) –

+0

整洁;尽管它具有路径边界和事物的特殊含义 – Will

1

如果我理解正确,您希望匹配字符串中两个单引号之间出现的文本。正则表达式是'.*'而不是'*'。代码,这将是这样的

String input = "abcd'efg'hij"; 
Matcher matcher = Pattern.compile("'.*'").matcher(input); //initializes a matcher 
System.out.println("Found ? " + matcher.find() + 
        "\nFound what ? "+ matcher.group()); //prints 'efg' 

如果你想从字面上匹配'*'然后使用正则表达式'\\*'(逃避*\

退房文档上java.util.regex.Patternjava.util.regex.Matcher类。