我需要创建一个正则表达式,其允许一个字符串,以包含任意数量的:为什么这个Java正则表达式不起作用?
- 字母数字字符
- 空间
- (
- )
- &
- 。
不允许其他字符。我以前RegexBuddy构建以下的正则表达式,它正常工作时,我内使用RegexBuddy测试:
\w* *\(*\)*&*\.*
然后我用使用RegexBuddy的“使用”功能将其转换成Java代码,但它似乎没有正常工作用一个简单的测试程序:
public class RegexTest
{
public static void main(String[] args)
{
String test = "(AT) & (T)."; // Should be valid
System.out.println("Test string matches: "
+ test.matches("\\w* *\\(*\\)*&*\\.*")); // Outputs false
}
}
- 我必须承认,我有一点盲点的,当涉及到正则表达式。任何人都可以解释为什么它不起作用吗?
好,但你应该提到,这允许空字符串,这可能不是他的意图。 – 2009-04-22 16:06:15
没关系,只有当字符串不为空时才会进行正则表达式测试。 – 2009-04-22 16:17:49
好吧,我扩大了答案,包括一些其他的选择,并解释它如何运作一点。 – Illandril 2009-04-22 16:18:54