我試圖刪除一段在Int.
和換行符之間開始的字符串。preg替換正則表達式在
$string = preg_replace('/Int.[\s\S]+?\n/', '', $string);
這裏是源字符串:
My address
Int. blabla
blabla blabla
這可能嗎?
我試圖刪除一段在Int.
和換行符之間開始的字符串。preg替換正則表達式在
$string = preg_replace('/Int.[\s\S]+?\n/', '', $string);
這裏是源字符串:
My address
Int. blabla
blabla blabla
這可能嗎?
您可以採用如下方案:
$s = "My address\nInt. blabla\nblabla blabla";
$s = preg_replace('~Int\.\h*([^\r\n]+)[\r\n]*~', '', $s);
echo $s; // => My address\nblabla blabla
正則表達式匹配Int.
,然後零個或多個空格(\h*
,只是左修整的結果),然後將捕獲進入第1組一個或多個字符,而不是換行符和回車符號(([^\r\n]+)
)
要刪除字符串,只需使用以下代碼:
$string = "My address\nInt. blabla\nblabla 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';
感謝它的工作! – Erik
正確安排。 –
請始終將預期結果納入問題主體 –