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