0

かなり簡単な問題を解決しようとしていますが、正規表現を適切に使用する方法がわかりません。(括弧) の間のテキスト ファイルから任意の単語を抽出したい。これは私が行っている試みの一種でした。正しい方向への突き出しは大歓迎です!!

public class Reader {

    public static void main(String[] args) {
        List<String> matchList = new ArrayList<String>();
        Pattern regex = Pattern.compile("\\{([^}]*)\\}");

        try{
            BufferedReader bufferedReader = new BufferedReader(new FileReader("test2.txt"));

            while(bufferedReader.readLine()!=null)
            {
                String parseMe = bufferedReader.readLine();

                Matcher regexMatcher = regex.matcher(parseMe);

                while (regexMatcher.find()) 
                {
                    matchList.add(regexMatcher.group());
                } 
            }
            System.out.println(matchList);
        }catch(IOException e){};
    }
}
4

2 に答える 2

3

2行おきにスキップしています。各行を 1 回ずつ読みます。

String parseMe;
while((parseMe = bufferedReader.readLine()) != null) {
    Matcher regexMatcher = regex.matcher(parseMe);

何も役に立たないので、try/catch ブロックを削除します。thorws IOException代わりにメインを使用できます。

于 2012-04-16T09:38:19.690 に答える
2

正規表現文字列は (少なくとも) である必要があります"[({\\[].*?[\\]})]"。外側の角括弧は正規表現構文です。検索する文字クラスを定義しています。これは完璧ではなく、Java 正規表現では完全に正しい解決策は不可能です (ネストされた括弧を説明することはできません)。しかし、開始点があります :) ところで、Eclipse Find を使用して正規表現を試すと役立つ場合があります。優れたコンテンツ アシストもあります。

于 2012-04-16T09:38:40.493 に答える