[英]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.