我的要求高度超出了我的基本正则表达式知识。我甚至无法尝试任何事情。你可以帮我解决$ pattern吗?
我需要的是:纯文本部分(下面的第1部分)必须附在<p>
&amp; </p>
代码
当前状态&amp;我的字符串的属性是:
<br>
个标记。 2个或更多<br>
个标签
被替换为<br><br>
。字符串可以有3个部分。 以下部分可以是任意顺序和任意数量的数字。
part 1 part 2 part 3
|------------| |-------------| |--------|
| plain text | | <ul>..</ul> | | $$..$$ |
|------------| |-------------| |--------|
<br>
个标签。 (修剪
使用<br>
掩码。)<ul>
.. </ul>
部分)之前和之后没有<br>
标记
本身;从未。$$
.. $$
部分)之前和之后没有<br>
标记
本身;从未。<br>
标签。 (所以
<br><br>
只能存在于纯文本部分之间。)<b></b>
,<i></i>
和$..$
。所以我认为我需要的逻辑是匹配没有$ matches [0]可以匹配第2部分或第3部分的字符串。换句话说,没有$ matches [0]可以包含第2部分或第3部分。
提前致谢,最诚挚的问候。
无关紧要的说明:因为mathjax而存在$$和$使用。
答案 0 :(得分:0)
简单的答案是:
preg_match('/<p>(.*?)<\/p>/', $oldString, $m);
$newString=$m[1];
了解$ m []的含义参考手册: http://php.net/manual/en/function.preg-match.php
关键是我不认为你会解决你应该(我猜)到#34;净化&#34;由用户输入和/或格式化源提供的文本。 首先,缺乏表达的含义&#34;纯文本&#34; (什么是exctly意味着什么?)并且,概括而言,几乎不可能预测输入中所有可能的不需要的代码案例......其中许多代码甚至可能非常危险。
当我面对&#34; purifing&#34;一个格式化的文本(由用户输入提供或不提供)一个很好的起点是这个做得很好,高度个性化的库: http://htmlpurifier.org/
我不明白你是否想要抓住<p></p>
标签,在这种情况下:
$newString=$m[0];