【发布时间】:2013-02-01 15:04:00
【问题描述】:
你知道为什么在一个简单的正则表达式模式中如果放 a*(quantifier) 它不匹配匹配器中的任何结果,即使它实际上包含字符 a; (在任何情况下,它都应该返回一个发现空字符串的结果,因为我正在使用“”)。 它适用于其他字符,例如 r* 和 b* 没有问题。 我知道如果内容放在引号或括号之间,它会起作用。(“a *”)。 虽然只是想知道为什么它可以使用不带引号的 b* 而不带引号的 a* 。
代码:
Pattern pat = Pattern.compile(args[0]);
Matcher match = pat.matcher(args[1]);
while (match.find())
{
System.out.println("Indeed this the information I need:"+ match.group());
System.out.println("Here it starts:"+match.start());
}
我知道 'a' 是元字符,但 'e' 和 'f' 也是元字符,并且它们可以正常工作。
我在命令行中插入:args[0] = a* args[1] = abba。
有什么想法吗?提前致谢。
【问题讨论】:
标签: java regex metacharacters