2012-10-02 57 views
0

我想采用以大写字母开头并以点号结束的行。在txt中读取第一个字符和最后一个字符

function isCapital($string) { 
    return preg_match('/^\\s*[A-Z]/', $string) > 0; 
} 

foreach ($url as $file => $files) { 
    $lines = file($files); 
    foreach ($lines as $key => $line) { 
     if (isCapital($line) && (substr($line, -1) == '.')) { 
      print_r($line); 
     } 
    } 
} 

但是,它不起作用,空白的结果。怎么了?

回答

2

替换您foreach($lines...下面这个例子:

foreach ($lines as $key => $line) { 
    if (preg_match('~^\s*[A-Z].*\.\s*$~', $line)) { 
     print_r($line); 
    } 
} 
+0

太棒了..非常感谢你,先生:) –

0

你的正则表达式似乎有点关闭。 \\s*正在寻找字面反斜杠,然后是s的任意数字。删除\之一,你应该取得进展。

+0

双反斜线是正确的PHP字符串(包括双和单引号),导致单反斜线内逸出;这反过来又会达到libpcre。 – mario

相关问题