Regex Can';t处理Txt文件中的任何字符串

Regex Can';t处理Txt文件中的任何字符串,regex,scala,Regex,Scala,这确实很奇怪。我无法处理文本文件中的字符串。我唯一能做的就是把它打印出来 这是我的密码: val pattern = new Regex("</DOCUMENT>") val file = Source.fromFile(fileLocale)(io.Codec("ISO8859-1")) for (line <- file.getLines()) { // line match { // case "</DOCUMENT&

这确实很奇怪。我无法处理文本文件中的字符串。我唯一能做的就是把它打印出来

这是我的密码:

 val pattern = new Regex("</DOCUMENT>")   
    val file = Source.fromFile(fileLocale)(io.Codec("ISO8859-1"))
    for (line <- file.getLines()) {
//      line match {
//        case "</DOCUMENT>" => {println("found it!!!!!"); return} //break out
//        case _ => println(line)   //save lines to another file
//      }
      println(line.indexOf("PUBLIC"))
    }
2014021171951加入 编号:000100180-14-000019符合要求的提交类型:10-K公共 文件数量:17符合报告期限:20131229截至 日期:20140221变更截止日期:20140221

FILER:

  COMPANY DATA:           COMPANY CONFORMED NAME:         SANDISK CORP        CENTRAL INDEX KEY:          0001000180      STANDARD INDUSTRIAL CLASSIFICATION: COMPUTER
存储设备[3572]IRS编号:770191793状态 注册成立日期:2010财年末:1229

  FILING VALUES:      FORM TYPE:      10-K        SEC ACT:        1934 Act        SEC FILE NUMBER:    000-26734       FILM NUMBER:        14634715

  BUSINESS ADDRESS:           STREET 1:       951 SANDISK DRIVE       CITY:           MILPITAS        STATE:          CA      ZIP:            95035       BUSINESS
电话:408-801-1000

  MAIL ADDRESS:           STREET 1:       951 SANDISK DRIVE       CITY:           MILPITAS        STATE:          CA      ZIP:            95035 </SEC-HEADER> <DOCUMENT> <TYPE>10-K
邮件地址:街道1:951 SANDISK DRIVE城市:米尔皮塔斯州:CA邮编:95035 10-K
1 sndk201310-k.htm表格10-k FY13 SNDK 2013 10-K 10-K 2第二部分 2013财年10-K表

10-K 2第三部分表格10-K 2013财年

我会做以下几件事:

val lines =  file.getLines.takeWhile( ! _.contains("</DOCUMENT>")

但是如果内存使用有问题,最好使用
迭代器
,它根据需要读取文件,不需要为所有文件分配内存

这是我正在寻找的解决方案,它是如此简单和完美,我喜欢Scala。但是这并不能解决我的问题。我的问题不是优雅地取回这件作品。我的问题是程序找不到
。就像
行一样。如果
find()
是一个有效的字符串函数,它将定位一段字符串,那么find(“”
将返回“null”。我不确定“程序找不到”是什么意思。
String
中没有
find
方法要查找字符串,可以使用
contains
查找
String
与regexp匹配。可能您的问题是
之前/之后的空格,请尝试使用
行。匹配(“\s*\s*”)
是的。我也尝试了该选项
val lines=line。包含(“\s*\s*”)
并且我得到的每一行都是一个
False
。你可以在上面看到原始的txt文件。我附加了一部分。我的意思是…这真的很奇怪,对吗?你知道可能发生了什么事吗?可能是编解码器的问题?
</DOCUMENT> <DOCUMENT> <TYPE>10-K <SEQUENCE>2 <FILENAME>Third PART <DESCRIPTION>FORM 10-K FY13 <TEXT> <!DOCTYPE html PUBLIC "-//W3C//DTD
val lines =  file.getLines.takeWhile( ! _.contains("</DOCUMENT>")
val lines =  file.getLines.takeWhile( ! _.contains("</DOCUMENT>").toList