0

我正在尝试在 Java 中使用这个 RegEx:在以下代码中:

public class Intervals {
public static void main( String[] args ) {
    try {
        FileReader fr = new FileReader( new File( "ex11.intervals.txt"));

        BufferedReader br = new BufferedReader( fr );

        while( br.read() != -1 ){
            String currentLine = new String( br.readLine() );

            Pattern p = Pattern.compile( "<hr( +size *= *[0-9]+)? *>" );

            Matcher m = p.matcher( currentLine );

            while( m.find() ){
                System.out.println( currentLine );
            }
        }

    } catch( FileNotFoundException fne ){
        fne.printStackTrace();
    } catch( IOException e ){
        e.printStackTrace();
    }
}
}

但它不起作用,但如果我使用egrep UNIX 实用程序执行它,它可以正常工作。

ex11.intervals.txt内容:

<hr>
<hr >
<hr size=15>
<hr size =    21 >

有人知道这是怎么回事吗?

我努力了

Pattern p = Pattern.compile( "<hr>" )

但两者都不起作用。

有什么建议,有帮助吗?

提前致谢

4

1 回答 1

7

更改代码以读取文件,如下所示:

String currentLine = null;

while( (currentLine = br.readLine()) != null ){

}

当您这样做时,read()您总是阅读第一个字符,从而跳过 HTML 标记中的小于号。

于 2012-11-18T16:20:06.210 回答