RegEx:删除特定字符串后字符串和文本末尾的数字

时间:2014-11-12 18:58:37

标签: php regex

我需要删除文件的某些部分:

内容可能如下所示:

Lorem ipsum 12, 14
Lorem 29
34
Lorem s. anything

这应该成为这个:

Lorem ipsum
Lorem
Lorem

1)应删除所有数字(可以使用逗号分隔多个数字)。如果没有其他的数字,则应该删除该行

2)如果有" s。",则应删除此行中此后的所有内容。

这是我的尝试:

$myfile = fopen("file.txt", "r") or die("Unable to open file!");
while(!feof($myfile)) {
    // remove some parts and output 
    $newString = preg_replace("/\d+$/","",fgets($myfile));
    echo newString . "<br>";
}
fclose($myfile);

2 个答案:

答案 0 :(得分:2)

搜索此正则表达式:

( *\d+(, *\d+)*|s\..*)$

用空字符串回复。

RegEx Demo

你也可以使用这个正则表达式(感谢@hwnd):

(?:[\d, ]+| *s\..*)$

答案 1 :(得分:1)

\d+(\s*,\s*\d+)*|\bs\..*$

试试这个。empty string。见。演示。

http://regex101.com/r/kP8uF5/10

$re = "/\\d+(\\s*,\\s*\\d+)*|\\bs\\..*$/im";
$str = "Lorem ipsum 12, 14\nLorem 29\n34\nLorem s. anything\nvcbvcbv";
$subst = "";

$result = preg_replace($re, $subst, $str);
相关问题