0

私のJavaアプリケーションでは、テキストファイルを読み取って、文字列のみのグループをハッシュマップに追加しようとしています。一致パターンを使用して文字列を検索していますが、正しい文字列を取得できません。私のテキストファイルの内容は

S Fr:tod:80089789
kid#00332001897678 cno:890768
cuon #PKGS WEIGHT
51235

Pattern pattern = Pattern.compile("(tod:[0-9]{0,}|kid#[0-9]{0,})|Cno:[0-9]{0,}|CUON  [0-9]{0,}");
while ((strLine = br.readLine()) != null) {
  strLine= strLine.trim();
  Matcher m1 = pattern.matcher(strLine);
  while (m1.find()) 
    allv.add(m1.group());
4

2 に答える 2

1

正規表現の問題は、正規表現では、空白が存在するかどうかを具体的に示す必要があることです。例えば

tod : 80089789

正規表現と一致しません

tod:[0-9]{0,}

しかし、それは正規表現によって一致します

tod : [0-9]{0,}

またはより一般的な

tod\s*:\s*[0-9]{0,}

\s「空白文字」を*意味し、「前のことを 0 回以上行う」ことを意味します。実際、わかりやすく{0,}するためにすべてを に置き換えることができます。*

于 2013-03-04T08:16:01.783 に答える
1

あなたのファイルであなたのコードを実行すると、1 つの一致を受け取ります。それがあなたが望むものではない場合...あなたの質問を明確にしてください。

img を参照してください: http://i.imgur.com/EnTXi4u.png

于 2013-03-04T08:26:57.443 に答える