我正在使用 dk.brics.automaton 工具。我正在使用一个包含正则表达式的文件。我想计算所有这些正则表达式的 DFA 状态。例如,我有这个 RE "/^\x3c(REQIMG|RVWCFG)\x3e/ism"
,我把它放在字符串数组 retval[0] 中。该代码运行良好,但问题是当我不使用任何文件进行读取并且只是在函数 RegExp 中将其传递到 RE 上方时,它会说无效转义。所以,当我编写 RE 时,
"/^\\x3c(REQIMG|RVWCFG)\\x3e/ism"
它不会给我错误。
我不明白为什么当我从文件中读取 RE 时我没有得到这个无效的转义
String line = null;
String retval[];
int j=0;
try {
FileReader fileReader =new FileReader(fileName);
BufferedReader bufferedReader =new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null) {
retval= line.split("\t");
int i=0;
for(i=0;i<retval.length;i++){
try{
j=j+1;
RegExp r = new RegExp(retval[i],ALL);
Automaton a = r.toAutomaton();
System.out.println("RE : "+retval[i]);
System.out.println("States"+a.getNumberOfStates());
}
catch(Exception ex)
{
}
}
}