>我正在尝试删除一段在Int.
和换行符之间开始的字符串。
$string = preg_replace('/Int.[sS]+?n/', '', $string);
下面是源字符串:
My address
Int. blabla
blabla blabla
这可能吗?
您可以使用以下解决方案:
$s = "My addressnInt. blablanblabla blabla";
$s = preg_replace('~Int.h*([^rn]+)[rn]*~', '', $s);
echo $s; // => My addressnblabla blabla
查看 IDEONE 演示
正则表达式将匹配Int.
,然后是零个或多个空格(h*
,只是为了左修剪结果),然后将除换行符和回车符(([^rn]+)
)以外的一个或多个字符捕获到组中 1
若要删除字符串,只需使用以下代码:
$string = "My addressnInt. blablanblabla blabla";
$regex = '~ # delimiter
^Int. # Looks for Int. at the beginning of a line
.* # everything else except a newline
~xm'; # free spacing mode and multiline
$replacement = '';
$string = preg_replace($regex, $replacement, $string);
您需要修饰符x
以允许注释和m
允许插入符号(^
)在任何行匹配。如果要删除整行(包括换行符),请将正则表达式更改为:
$regex = '~^Int..*R~m';
查看有关 ideone.com 的演示。