0

在我的 Java 应用程序中,我尝试读取一个文本文件并将一些字符串组添加到哈希图中。我正在使用匹配模式来查找字符串,但我没有得到正确的字符串。我的文本文件内容是

S Fr: tod : 80089789
孩子#00332001897678 cno : 890768
cuon #PKGS 重量
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 个匹配项。所以如果这不是你想要的......请澄清你的问题。

见图片:http: //i.imgur.com/EnTXi4u.png

于 2013-03-04T08:26:57.443 回答