执行流利的正则表达式

我们尝试运行以下代码: fluentRegex包中包含以下java文件: RegularExpressionBuilder.java RegularExpressionBuilderBase.java InvalidTokenException.java SingleCharMatcher.java 上述java文件中的代码取自以下给定链接: http://code.google.com/p/fluent-regex/source/browse/trunk/src/com/googlecode/fluentregex/?r=8 码:
import fluentRegex.*;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

 public class CheckRegex
   {

public CheckRegex(){
String name = "Alen";
     RegularExpressionBuilder regEx =regExp().atLeastOne(anyOf().singleChar(',').whitespace());
  Pattern p = Pattern.compile(regEx.ex());
  Matcher expMatcher = p.matcher(name);
  String st=regEx.ex();
  System.out.println(""+st); 
 if (expMatcher.find())
{
  System.out.println("Month is: ");
}
else
{
    System.out.println("else part!");
}    }  
public void main(String[] args)
     {

    new CheckRegex();
}}
此代码提供以下错误: C: Users Chitrangada Documents docs DSL-Final yr project code> javac CheckRegex.j AVA CheckRegex.java:12:找不到符号 符号:方法anyOf() location:类CheckRegex          RegularExpressionBuilder regEx = regExp()。atLeastOne(anyOf()。singleChar ( '')空白());                                                               ^ CheckRegex.java:12:找不到符号 符号:方法regExp() location:类CheckRegex          RegularExpressionBuilder regEx = regExp()。atLeastOne(anyOf()。singleChar ( '')空白());                                           ^ 2个错误 请尽快回复并提供可能的解决方案 问候, DSL团队     
已邀请:
你不能只从你的班级调用这些方法。方法
regExp()
anyOf()
似乎是
RegularExpressionBuilder
类的静态方法。所以你打电话给他们是这样的:
RegularExpressionBuilder regEx = 
  RegularExpressionBuilder.regExp()
    .atLeastOne(RegularExpressionBuilder.anyOf().singleChar(',').whitespace());
因此,您似乎正在创建模式
[s,]+
,与长卷曲的代码片段相比,即使对于不熟悉正则表达式IMO的人来说也更清晰。 您可以通过导入从
RegularExpressionBuilder
导入所有静态方法:
import static com.googlecode.fluentregex.RegularExpressionBuilder.*;
然后你可以这样做:
RegularExpressionBuilder regEx = 
    regExp().atLeastOne(anyOf().singleChar(',').whitespace());
还有一件事:你的
main
方法应该是静态的:
public static void main(String[] args) { 
    // ...
}
    
Java不允许自由函数,只允许方法。因此,拨打
anyOf()
regExp()
是非法的。查看链接的源代码,
RegularExpressionBuilder
具有静态的n nlary和
regExp()
方法。也许你的意思是:
RegularExpressionBuilder regEx =
    RegularExpressionBuilder.regExp().atLeastOne(
        RegularExpressionBuilder.anyOf().singleChar(',').whitespace()
    );
代码可能还有其他问题;这个只是立刻跃出的东西。     

要回复问题请先登录注册