preg_replace 正则表达式在行尾停止
preg_replace regex stop at end of line
无法使用 preg_replace
选择和删除文本。我有一个起点 Address: 没有终点,只是它以换行结尾。是否有一个正则表达式可以删除文本行,使用换行符作为结束点?
地址:123 Main Street
城市:纽约
preg_replace('#Address:.*#si'), '', $lead_container)
上面删除了所有内容,包括我希望保留的城市:纽约。我可以使用 City: 作为我的终点,但它并不总是可用。首选换行符 \n
作为端点。
preg_replace('#Address:.*\n#si'), '', $lead_container)
尝试将 \n
和 \r
添加到我的正则表达式中。那仍然选择一切。如果可能的话,我肯定会很感激被指出正确的方向。谢谢
你有几个选择。首先,您可以删除正则表达式中的 s
选项;这将阻止 .
匹配换行符:
echo preg_replace('#Address:.*#i', '', $lead_container);
其次,您可以通过在 .*
:
之后添加 ?
使第二个示例中的正则表达式非贪婪
echo preg_replace('#Address:.*?\n#si', '', $lead_container);
两种情况下
的示例输入
$lead_container = "Address: 123 Main Street
City: New York";
输出为City: New York
。 Demo on 3v4l.org
这在第一个 空白
之后开始 select
preg_replace('[ ].*?\n', '', $lead_container)
无法使用 preg_replace
选择和删除文本。我有一个起点 Address: 没有终点,只是它以换行结尾。是否有一个正则表达式可以删除文本行,使用换行符作为结束点?
地址:123 Main Street
城市:纽约
preg_replace('#Address:.*#si'), '', $lead_container)
上面删除了所有内容,包括我希望保留的城市:纽约。我可以使用 City: 作为我的终点,但它并不总是可用。首选换行符 \n
作为端点。
preg_replace('#Address:.*\n#si'), '', $lead_container)
尝试将 \n
和 \r
添加到我的正则表达式中。那仍然选择一切。如果可能的话,我肯定会很感激被指出正确的方向。谢谢
你有几个选择。首先,您可以删除正则表达式中的 s
选项;这将阻止 .
匹配换行符:
echo preg_replace('#Address:.*#i', '', $lead_container);
其次,您可以通过在 .*
:
?
使第二个示例中的正则表达式非贪婪
echo preg_replace('#Address:.*?\n#si', '', $lead_container);
两种情况下
的示例输入$lead_container = "Address: 123 Main Street
City: New York";
输出为City: New York
。 Demo on 3v4l.org
这在第一个 空白
之后开始 selectpreg_replace('[ ].*?\n', '', $lead_container)