Regex fluent正则表达式的执行
我们尝试运行以下代码: fluentRegex包包含以下java文件: RegularExpressionBuilder.java RegularExpressionBuilderBase.java InvalidTokenException.java SingleCharMatcher.java 上述java文件中的代码取自以下给定链接: 代码: 此代码出现以下错误: C:\Users\Chitrangada\Documents\docs\DSL-Final yr project\code>javac CheckRegex.j ava CheckRegex.java:12: cannot find symbol symbol : method anyOf() location: class CheckRegex RegularExpressionBuilder regEx = regExp().atLeastOne(anyOf().singleChar (',').whitespace()); ^ CheckRegex.java:12: cannot find symbol symbol : method regExp() location: class CheckRegex RegularExpressionBuilder regEx = regExp().atLeastOne(anyOf().singleChar (',').whitespace()); ^ C:\Users\Chitrangada\Documents\docs\DSL Final yr project\code>javac CheckRegex.j 艾娃 java:12:找不到符号 符号:anyOf()方法 位置:类CheckRegex RegularExpressionBuilder regEx=regExp().atlestone(anyOf().singleChar (“,”).whitespace()); ^ java:12:找不到符号 符号:方法regExp() 位置:类CheckRegex RegularExpressionBuilder regEx=regExp().atlestone(anyOf().singleChar (“,”).whitespace()); ^ 2个错误 请尽快回复一个可能的解决方案 问候,Regex fluent正则表达式的执行,regex,api,fluent,Regex,Api,Fluent,我们尝试运行以下代码: fluentRegex包包含以下java文件: RegularExpressionBuilder.java RegularExpressionBuilderBase.java InvalidTokenException.java SingleCharMatcher.java 上述java文件中的代码取自以下给定链接: 代码: 此代码出现以下错误: C:\Users\Chitrangada\Documents\docs\DSL-Final yr project\code>
DSL团队Java不允许使用免费函数,只允许使用方法。因此,对
anyOf()
和regExp()
的调用是非法的。查看链接的源代码,RegularExpressionBuilder
具有静态空值和方法。也许你的意思是:
RegularExpressionBuilder regEx =
RegularExpressionBuilder.regExp().atLeastOne(
RegularExpressionBuilder.anyOf().singleChar(',').whitespace()
);
代码可能存在其他问题;这只是一个立即跳出来的方法。您不能从类中调用这些方法。方法
regExp()
和anyOf()
似乎是来自RegularExpressionBuilder
类的静态方法。所以你会这样称呼他们:
RegularExpressionBuilder regEx =
RegularExpressionBuilder.regExp()
.atLeastOne(RegularExpressionBuilder.anyOf().singleChar(',').whitespace());
因此,您似乎正在创建模式[\s,]+
,这与冗长的代码片段相比要清晰得多,即使对于不熟悉regex的人,IMO也是如此
您可以通过导入以下内容从RegularExpressionBuilder
导入所有静态方法:
import static com.googlecode.fluentregex.RegularExpressionBuilder.*;
然后你可以做:
还有一件事:你的main
方法应该是静态的:
public static void main(String[] args) {
// ...
}
制表符和HTML不能很好地混合。可以将制表符转换为空格,也可以在每行的开头加上四个空格以保留缩进。
RegularExpressionBuilder regEx =
regExp().atLeastOne(anyOf().singleChar(',').whitespace());
public static void main(String[] args) {
// ...
}