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);