使用php删除一个或两个数字的行

使用php删除一个或两个数字的行,php,regex,replace,Php,Regex,Replace,我试图删除包含一个或两个字符的行 例: 结果: text text text 我使用了$text=str_replace'/^.{2}','dsfsdfsd',$text;但不是工作 有什么问题吗?在正则表达式中,数字由d表示,包括所有语言,否则可以使用[0-9]{2}或\d{2}。preg_replace/[a-zA-Z0-9]{1,2}/i,'sometext',$text 不接受正则表达式。这是一个针/干草堆搜索和替换功能。这意味着它查找字符串文本 对于正则表达式搜索/替换,请改用 例如

我试图删除包含一个或两个字符的行

例:

结果:

text text
text
我使用了$text=str_replace'/^.{2}','dsfsdfsd',$text;但不是工作


有什么问题吗?

在正则表达式中,数字由d表示,包括所有语言,否则可以使用[0-9]{2}或\d{2}。

preg_replace/[a-zA-Z0-9]{1,2}/i,'sometext',$text

不接受正则表达式。这是一个针/干草堆搜索和替换功能。这意味着它查找字符串文本

对于正则表达式搜索/替换,请改用

例如,如果您想删除任何一行正好包含1位或2位的文本,您可以使用以下带有preg_replace的正则表达式


此处\d表示中的任何数字字符[0-9],括号中的{1,2}表示匹配1位或2位字符。从此表达式中删除插入符号和符号将使其与主题中找到的任何1或2位字符表达式相匹配。在这里,它在m模式修改器允许PCRE引擎进入多行模式的每一行上寻找精确匹配。您还可以阅读更多相关内容。

正如其他人所建议的,对于正则表达式,您需要使用preg\u replace。下面的示例对您的输入非常有效

<?php
    $text = "Lorem Ipsum\nDolar\n2\nContan\n23";
    $after = preg_replace("/[\n][0-9]{1,2}[\n]{0}/", "", $text);
    echo "<pre>";
    echo "Before : \n".$text."\n\n";
    echo "After : \n".$after;
?>

你必须检查你的正则表达式。您指定的正则表达式匹配字符串的开头,后跟两个字符,没有限制。您必须构建更精确的正则表达式,并根据需要调整匹配行为。有很多工具可以帮助编写正则表达式,例如str_replace不使用正则表达式,用户要求使用字符
$text = '
text text
11
0
text
';

$text = preg_replace('/^\d{1,2}$/m', '<replaced>', $text);

echo $text;
/**
 * This should give you ...
 * 
 * text text
 * <replaced>
 * <replaced>
 * text
 */
<?php
    $text = "Lorem Ipsum\nDolar\n2\nContan\n23";
    $after = preg_replace("/[\n][0-9]{1,2}[\n]{0}/", "", $text);
    echo "<pre>";
    echo "Before : \n".$text."\n\n";
    echo "After : \n".$after;
?>