0

さまざまなソフトウェア コンポーネントに関する説明を含むテキスト ファイルがあります。現在、多くのソフトウェア コンポーネントがそのバージョンとともに記載されています。たとえば、ファイルに文字列があるとします。

"Stack Careers 2.0 is the new number 1 site with symbol ! and * and blablabla   
 replacing older Stack Careers."

また、いくつかの記号と数字もあります。

A-Za-z 以外の文字で文字列を分割しました。以下はそのコードです。

getMySoftwareDescription().split("[^a-zA-Z]");

これにより、次のようなすべての単語が得られます(実際には、ソフトウェアのバージョン番号以外の記号や数字ではなく、すべての単語が必要です)

Stack,Careers,is,the、等。配列内。

Stack Careers 2.0しかし、文字列を単一の文字列として取得したいのですが、Stack Careers

is(そのままのような他の単語とともにthe)上記の例から。

私は正規表現が苦手であることに言及したいと思います。

4

1 に答える 1

0

これで始められます

    Pattern p = Pattern.compile("(\\p{Lu}[\\p{L} ]+)(\\d+[\\.]?\\d+)*|[\\S&&[^.]]+");
    Matcher m = p.matcher("Stack Careers 2.0 is the new number 1 site with symbol ! and \n* and blablabla\n replacing older Stack Careers.");
    List<String> list = new ArrayList<String>(); 
    while (m.find()) {
        list.add(m.group());
    }
    System.out.println(list);

出力

[Stack Careers 2.0, is, the, new, number, 1, site, with, symbol, !, and, *, and, blablabla, replacing, older, Stack Careers]

ただし、可能なすべてのオプションを認識するように改善する必要があります。

于 2012-12-06T09:56:28.097 に答える