正则表达式修剪或 preg_replace 空白,包括制表符和换行符
如何使用 PHP 修剪“poo”之前的所有空白以及之后的所有空白?
我想把这个:变成
<code><div class="b-line"></div> \t
\n\n\n \t \n poo
<lol>
n \n \n \t </code>
这个:
<code><div class="b-line"></div>poo
<lol>
n</code>
这部分将始终位于字符串的开头:
谢谢
编辑:抱歉,我应该解释一下,上面的全部内容都在一个字符串中,我只是想修剪紧接着 <之后的空白;div class="b-line">
以及紧邻之前
How can I use PHP to trim all white space up to "poo" and all white space afterwards?
I would like to turn this:
<code><div class="b-line"></div> \t
\n\n\n \t \n poo
<lol>
n \n \n \t </code>
In to this:
<code><div class="b-line"></div>poo
<lol>
n</code>
This part will always be at the start of the string: <code><div class="b-line"></div>
Thanks
Edit: Sorry I should explain that the whole of the above is in a string and I only want to trim the whitespace immediately after <code><div class="b-line"></div>
and immediately before </code>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
请参阅 修剪
See trim
preg_*
函数提供 空白转义序列\s
,您可以使用它,因此您的正则表达式将是:也许您需要使用
[\\s$]
而不仅仅是\ \s
,我不确定PCRE如何处理在这些情况下换行。preg_*
functions provides whitespace escape sequence\s
, which you can use, so you're regex would be:Maybe you will need to use
[\\s$]
instead of just\\s
, I'm nor sure how PCRE handles newlines in those cases.可以通过以下方式完成:
此处示例。
如果
标记仅出现在字符串的开头/结尾,您可能需要使用
^
和$
来锚定表达式:Can be done with:
Example here.
If the
<code>
tag only occurs at beginning/end of string you would want to anchor the expression with^
and$
:我认为这个基于前向和后向的正则表达式将适合您:
输出:
I think this lookahead and lookbehind based regex will work for you:
OUTPUT:
@Vyktor 的答案几乎是正确的。如果您只是针对字符串(即
$s
)运行echo preg_replace('/\s/', '', $s);
您将得到:测试片段:
@Vyktor's answer is almost correct. If you just run
echo preg_replace('/\s/', '', $s);
against your string (which is$s
) you will get:Test snippet: