Php 正则表达式:删除字符串末尾的数字和特定字符串后面的文本

Php 正则表达式:删除字符串末尾的数字和特定字符串后面的文本,php,regex,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!"); wh

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

内容可以如下所示:

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);
$myfile=fopen(“file.txt”,“r”)或die(“无法打开文件!”);
而(!feof($myfile)){
//拆下一些零件并输出
$newString=preg_replace(“/\d+$/”,“”,fgets($myfile));
回声新闻字符串“
”; } fclose($myfile);
搜索此正则表达式:

( *\d+(, *\d+)*|s\..*)$
并以空字符串进行答复

您也可以使用此正则表达式(感谢@hwnd):

尝试此操作。替换为
空字符串
。请参阅演示


或者
(?:[\d,]+|*s\..*)$
=)你比我快。你是对的。但在我的例子中,这种类型的字符串不会出现。会有这样的
12,14
字符串吗?
(?:[\d, ]+| *s\..*)$
\d+(\s*,\s*\d+)*|\bs\..*$
$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);