我正在解析一些电子邮件。 Mobile Mail、iPhone 和 iPod touch 会附加一个签名作为单独的边界,使其易于删除。并非所有邮件客户端都这样做,只是使用“--”作为签名分隔符。
我需要从字符串中删除“--”,但只删除最后一次出现的“--”。
样本副本
hello, this is some email copy-- check this out
--
Tom Foolery
我想过拆分“--”,删除最后一部分,我会得到它,但是explode()
and split()
如果没有匹配项,似乎都没有返回很大的值让我知道它是否做了什么。
我不明白preg_replace()
跨越多条线。我已将所有行结尾标准化为\n
.
最终最好的建议是什么hello, this is some email copy-- check this out
,不考虑的话,会有没有签名的情况,当然也会有我无法涵盖所有情况的情况。
实际上正确的签名分隔符 https://www.rfc-editor.org/rfc/rfc3676#section-4.3 is "-- \n"
(注意换行符之前的空格),因此分隔符正则表达式应该是'^-- $'
。尽管您可能会考虑使用'^--\s*$'
,所以它可以与 OE 一起使用,但会出错。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)