簡體   English   中英

刪除包含空格的新行

[英]Removing new lines containing spaces

我有一個文本文件test.txt:

this is test line
  another line
2146554
 145648
    DATE 2017-12-12

USR-PASSWORD *\#5%*sdfdaw*eewaqd*

 TYPE ---NULLS--- TBL
PWD-TOD 2018-01-01
 EDBS
  18/01/02 KEYFROM 


 SDBS

在您看到空行的地方,它們實際上包含3個空格。 我已經能夠刪除任何包含特定單詞的行:

<?php
$file = file('test.txt'); 
$key = '17.2';
$cleaned = array();

//CLEANUP START
$unwanted_words = array(" DATE", "USR-PASSWORD", "PWD-TOD", "KEYFROM ");
$unwanted_words_match = '(?:' . join('|', array_map(function($word) {
    return preg_quote($word, '/');
}, $unwanted_words)) . ')';

$replace_match = '/^.*' . $unwanted_words_match . '.*$[\r\n]/m';
$result = preg_replace($replace_match, '', $file);

foreach ($result as $key => $value) {
  if(!empty($value)) {
    $cleaned[] = $value;
    echo  $value . "<br />";
  }
}

?>

最后一步是刪除帶有3個空格的那些行。 我試過了

\n[ ]{3,}

但是我的正規知識到此為止。

文字檔: https//jsfiddle.net/adsj0rw9/1/

正則表達式中的{Min,}表示至少匹配Min時間。 為了匹配3個空格字符,你必須刪除逗號,在括號標記量詞: ^[ ]{3} 然后,您應該尋找以下任何換行符將其刪除:

(?m)^   $\R?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM