我想在java上实现模式'*'文本匹配。最简单的方法是什么? Pattern.java是最好的解决方案吗?
答案 0 :(得分:4)
查看正则表达式包java.util.regex
。你找到了一个很好的起点here。
答案 1 :(得分: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.Pattern
和java.util.regex.Matcher
课程的文档。
答案 2 :(得分:0)
你可以使用indexOf()
的{{1}}方法......
看看这段代码.... Pattern match
答案 3 :(得分:0)
没有用于Java的内置glob-matcher,但您可以轻松convert a glob to a regex and使用正则表达式库。