1

フォームの URL がたくさんあるテキスト ドキュメントがあり、/courses/......./.../.. これらの URL の中から、フォームの URL のみを抽出したいと考えてい/courses/.../lecture-notesます。/coursesで始まり、で終わるURL を意味し/lecture-notesます。正規表現または単に文字列マッチングを使用してこれを行う良い方法を知っている人はいますか?

4

3 に答える 3

5

1 つの代替手段を次に示します。

Scanner s = new Scanner(new FileReader("filename.txt"));

String str;
while (null != (str = s.findWithinHorizon("/courses/\\S*/lecture-notes", 0)))
    System.out.println(str);

与えられたfilename.txtコンテンツ

Here /courses/lorem/lecture-notes and
here /courses/ipsum/dolor/lecture-notes perhaps.

上記のスニペットが印刷されます

/courses/lorem/lecture-notes
/courses/ipsum/dolor/lecture-notes
于 2012-08-11T19:37:32.510 に答える
1

以下は、中間部分のみ/courses/を返します (つまり、exclude and /lectures-notes/:

Pattern p = Pattern.compile("/courses/(.*)/lectures-notes");
Matcher m = p.matcher(yourStrnig);

if(m.find()).
  return m.group(1) // The "1" here means it'll return the first part of the regex between parethesis.
于 2012-08-11T19:48:49.893 に答える
1

1 行に 1 つの URL があると仮定すると、以下を使用できます。

    BufferedReader br = new BufferedReader(new FileReader("urls.txt"));
    String urlLine;
    while ((urlLine = br.readLine()) != null) {
        if (urlLine.matches("/courses/.*/lecture-notes")) {
            // use url
        }
    }
于 2012-08-11T19:42:32.943 に答える